In the GoLang we use interfaces everywhere. But we also should understand the rules and idioms how GoLang interfaces works. Let’s read about them 😉; part one:
#development #basics
https://medium.com/golangspec/interfaces-in-go-part-i-4ae53a97479c
#development #basics
https://medium.com/golangspec/interfaces-in-go-part-i-4ae53a97479c
Medium
Interfaces in Go (part I)
Interfaces make the code more flexible, scalable and it’s a way to achieve polymorphism in Golang. Instead of requiring a particular type…
Everybody use dependencies and third-party packages but what is the best way to use it? GopherAcademy helps to understand best practice for the vendor folder organization. Of course, code examples and theory points are included 🙂
#development #basics #manual
https://blog.gopheracademy.com/advent-2015/vendor-folder/
#development #basics #manual
https://blog.gopheracademy.com/advent-2015/vendor-folder/
Gopheracademy
Understanding and using the vendor folder
With the release of Go 1.5, there is a new way the go tool can discover go packages. This method is off by default and the surrounding tools, such as goimports, do not understand that folder layout.
Interesting step-by-step guide about design and development API with Docker containers, Swarm cluster and Traefik (HTTP reverse proxy and load balancer).
In this article you’ll know how to configure the Traefik in the Docker environment with 3 following nodes: one manager and two workers
#architecture #configuration #docker #microservices
https://hackernoon.com/architecting-a-highly-scalable-golang-api-with-docker-swarm-traefik-875d1871cc1f?source=linkShare-b636419a57de-1517171008
In this article you’ll know how to configure the Traefik in the Docker environment with 3 following nodes: one manager and two workers
#architecture #configuration #docker #microservices
https://hackernoon.com/architecting-a-highly-scalable-golang-api-with-docker-swarm-traefik-875d1871cc1f?source=linkShare-b636419a57de-1517171008
Hackernoon
Architecting a Highly Scalable Golang API with Docker Swarm & Traefik | HackerNoon
This post will show you how to setup a <strong>Swarm Cluster</strong>, deploy a couple of microservices, and create a Reverse Proxy Service (with <a href="https://traefik.io/" target="_blank"><strong>Traefik</strong></a>) in charge of routing requests on…
A presentation by Russ Cox in the MIT University: Go’s memory model
#development #memory_management
https://nil.csail.mit.edu/6.824/2016/notes/gomem.pdf
#development #memory_management
https://nil.csail.mit.edu/6.824/2016/notes/gomem.pdf
Here is a must-read article about memory management in the GoLang about the following important points:
- stack, heap and the data segment explanation;
- escape analysis;
- garbage collector;
And good performance optimization advices 😉
https://dougrichardson.org/2016/01/23/go-memory-allocations.html
- stack, heap and the data segment explanation;
- escape analysis;
- garbage collector;
And good performance optimization advices 😉
https://dougrichardson.org/2016/01/23/go-memory-allocations.html
dougrichardson.org
Go Memory Management
All computing environments must deal with memory management.This article discusses some memory management concepts used by the Go programming language.This a...
Great article about the architecture inside of Golang microservice, based on the Bob's Clean Architecture Concept (https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html)
Main points: Your GoLang microservice has 4 layers:
- Models, data structures, and their methods;
- Repository, the provider of DB operations and data management,
- Usecase for business logic implementation;
- Delivery, protocol, and algorithms for message handling (HTTP, gRPC, etc).
Each layer should be independent and be available for mocking, for internal communications between application layers.
An example project here: https://github.com/bxcodec/go-clean-arch
Full article on the Hackernoon website:
https://hackernoon.com/golang-clean-archithecture-efd6d7c43047
#development #microservices #architecture
Main points: Your GoLang microservice has 4 layers:
- Models, data structures, and their methods;
- Repository, the provider of DB operations and data management,
- Usecase for business logic implementation;
- Delivery, protocol, and algorithms for message handling (HTTP, gRPC, etc).
Each layer should be independent and be available for mocking, for internal communications between application layers.
An example project here: https://github.com/bxcodec/go-clean-arch
Full article on the Hackernoon website:
https://hackernoon.com/golang-clean-archithecture-efd6d7c43047
#development #microservices #architecture
Awesome news! GoLang team has just released go1.10rc1, a release candidate of the 1.10 version.
If you have installed Go and want to try go1.10rc1, you are able to test it using this tool:
https://godoc.org/golang.org/x/build/version/go1.10rc1
Download binary and source distributions:
https://golang.org/dl/#go1.10rc1
The draft release notes of the 1.10 version:
https://tip.golang.org/doc/go1.10
The link for discussions:
https://groups.google.com/forum/m/#!msg/golang-nuts/XlnXSk1r6Sw/5Q6UlVrZCAAJ
If you have installed Go and want to try go1.10rc1, you are able to test it using this tool:
https://godoc.org/golang.org/x/build/version/go1.10rc1
Download binary and source distributions:
https://golang.org/dl/#go1.10rc1
The draft release notes of the 1.10 version:
https://tip.golang.org/doc/go1.10
The link for discussions:
https://groups.google.com/forum/m/#!msg/golang-nuts/XlnXSk1r6Sw/5Q6UlVrZCAAJ
godoc.org
Command go1.10rc1
The go1.10rc1 command runs the go command from go1.10rc1.
The time for fun 🙂 one of the Github users, Sau Sheong Chang (sausheong) ported and build the arcade video game calls ‘Space Invaders’ using GoLang and wrote step-by-step instructions to repeat it. Enjoy a good nostalgy post with code examples, source code, and demo =)
#development #examples
https://github.com/sausheong/invaders/blob/master/README.md
Source code here https://github.com/sausheong/invaders
#development #examples
https://github.com/sausheong/invaders/blob/master/README.md
Source code here https://github.com/sausheong/invaders
GitHub
invaders/README.md at master · sausheong/invaders
Space Invaders in Go. Contribute to sausheong/invaders development by creating an account on GitHub.
New post about concurrency problems and solutions. Main points with examples:
- Blocking Channels;
- Blocking Channels Buffer;
- Wait Group (run multiple async tasks and wait for them execution);
#development #basics #algorithms
https://hackernoon.com/concurrency-how-it-can-help-you-and-how-you-can-use-golang-to-reach-it-easily-ae3e070b3d2c
- Blocking Channels;
- Blocking Channels Buffer;
- Wait Group (run multiple async tasks and wait for them execution);
#development #basics #algorithms
https://hackernoon.com/concurrency-how-it-can-help-you-and-how-you-can-use-golang-to-reach-it-easily-ae3e070b3d2c
Hackernoon
Concurrency: how it can help you and how you can use GOLANG to reach it easily
Do you know the difference between “go build” and “go install” commands? Now I sure you will 🙂
#development #basics
https://pocketgophers.com/go-install-vs-go-build/
#development #basics
https://pocketgophers.com/go-install-vs-go-build/
Good and simple short article about the benchmark writing in GoLang. Code examples are available 😉
#development #benchmarks #testing #basics
https://mycodesmells.com/post/testing-go-with-benchmarks
#development #benchmarks #testing #basics
https://mycodesmells.com/post/testing-go-with-benchmarks
Mycodesmells
Testing Go with Benchmarks - My Code Smells!
Every now and the you face some kind of a problem in your application and come up with two (or more) solutions. You then wonder which is more efficient, which way should you go? If your problem happens to occur in a Golang application, Benchmarks come to…
How can we track our microservice activity and monitor some processes inside of the service? The Prometheus can helps us in it: the next following article discovers an step-by-step flow for set up, configure and usage this excellent product:
#development #microservices #monitoring
https://www.google.ru/amp/s/blog.alexellis.io/prometheus-monitoring/amp/
#development #microservices #monitoring
https://www.google.ru/amp/s/blog.alexellis.io/prometheus-monitoring/amp/
The article by Paul Dix calls “The Decomposable Monolith: Long Live the Monolith, Long Live Services!”
Code examples are available but without a code highlighting 🙂
#architecture #development #microservices
https://www.influxdata.com/blog/decomposable-monolith-long-live-monolith-long-live-services/
Code examples are available but without a code highlighting 🙂
#architecture #development #microservices
https://www.influxdata.com/blog/decomposable-monolith-long-live-monolith-long-live-services/
InfluxData
Build A Monolithic Application to be Easily Decomposed Later | InfluxData
In this post we explore the advantages of a monolith while proposing a way to structure a new project to being broken out into services later. To help illustrate the idea, well work through an example using Go as the implementation language and a next...
GoLand 2018.1 EAP by the JelBrains company - new features and performance improvements has been announced!
#development #IDE
https://blog.jetbrains.com/go/2018/01/22/welcome-goland-2018-1-eap-better-inspections-completion-performance-and-more/
#development #IDE
https://blog.jetbrains.com/go/2018/01/22/welcome-goland-2018-1-eap-better-inspections-completion-performance-and-more/
Very interesting article calls “From monoliths to microservices: an architectural strategy.” The structure of this post:
- Adopting Microservices;
- Microservices Architectural Patterns;
- Architectural & Implementation Considerations;
- Developer Productivity During Microservices Adoption;
#architecture #development #microservices
https://thenewstack.io/from-monolith-to-microservices
- Adopting Microservices;
- Microservices Architectural Patterns;
- Architectural & Implementation Considerations;
- Developer Productivity During Microservices Adoption;
#architecture #development #microservices
https://thenewstack.io/from-monolith-to-microservices
The New Stack
From Monoliths to Microservices: An Architectural Strategy
Most people outside of IT just don’t get how difficult it is to manage complex enterprise systems. It is a
Great post about service discovery and load balancing for GoLang microservices. Code examples, theory and step-by-step instructions are here:
#architecture #microservices #development
https://callistaenterprise.se/blogg/teknik/2017/04/24/go-blog-series-part7/
#architecture #microservices #development
https://callistaenterprise.se/blogg/teknik/2017/04/24/go-blog-series-part7/
callistaenterprise.se
Go microservices, part 7 - Service Discovery & Load-balancing. | Callista
Callista Enterprise - seniora IT-arkitekter och systemutvecklare inom Java, öppen källkod, agil utveckling och systemintegration
How to write the load testing service? In this article you’ll know how to design an optimized service for load testing with code examples and good description 🙂
#development #benchmarks
https://callistaenterprise.se/blogg/teknik/2015/11/22/gotling/
#development #benchmarks
https://callistaenterprise.se/blogg/teknik/2015/11/22/gotling/
callistaenterprise.se
Creating a load-test tool in Golang | Callista
Callista Enterprise - seniora IT-arkitekter och systemutvecklare inom Java, öppen källkod, agil utveckling och systemintegration
I hope everyone knows about the latest GoLang release 1.10. If it isn’t than here is an article with top interesting and important changes and improvements which have been released in a new version of GoLang. Fast reading about 8 mins 😉
#language #development #releases
https://medium.com/@thuc/whats-changes-in-golang-1-10-d3022fbade3c?source=linkShare-b636419a57de-1519654220
#language #development #releases
https://medium.com/@thuc/whats-changes-in-golang-1-10-d3022fbade3c?source=linkShare-b636419a57de-1519654220
Medium
What’s changes in Golang 1.10
Happy lunar new year and happy Golang 1.10 releasing. I took a quick look release note and notes interesting changes in Golang 1.10. Hope…
Compare the hash-map implementation between different languages: Python, Ruby, Java, Scala, GoLang, C++ and C#.
Good analysis, enjoy reading!
#development #language
https://rcoh.me/posts/hash-map-analysis/
Good analysis, enjoy reading!
#development #language
https://rcoh.me/posts/hash-map-analysis/
rcoh.me
An Analysis of Hash Map Implementations in Popular Languages
Few data-structures are more ubiquitous in real-world development than the hash table. Nearly every major programming features an implementation in its standard library or built into the runtime. Yet, there is no conclusive best strategy to implement one…
Interesting article about the bufio package in GoLang. How does it work (read, write for different data types) inside of package
#development #practice
https://medium.com/golangspec/introduction-to-bufio-package-in-golang-ad7d1877f762?source=linkShare-b636419a57de-1520074459
#development #practice
https://medium.com/golangspec/introduction-to-bufio-package-in-golang-ad7d1877f762?source=linkShare-b636419a57de-1520074459
Medium
Introduction to bufio package in Golang
Package bufio helps with buffered I/O. Through a bunch of examples we’ll get familiar with goodies it provides: Reader, Writer and Scanner…
Simple and good for understanding tutorial about Golang’s channels. It can help beginners to meet with them and learn to use it without problems 🙂
Keys of the article:
- What is a channel, goals, and functions of it;
- Deadlocks and other problems;
- Channel ranging and closing. When, why and how?
#development #basics #language
https://guzalexander.com/2013/12/06/golang-channels-tutorial.html
Keys of the article:
- What is a channel, goals, and functions of it;
- Deadlocks and other problems;
- Channel ranging and closing. When, why and how?
#development #basics #language
https://guzalexander.com/2013/12/06/golang-channels-tutorial.html