Golang Ninjas Newsletter — Issue #19
Weekly letter · Maarten Bezemer · Sept. 7 · Join for free or add the newsletter rss

Maarten uses Go to build the back-end of developer platform Jexia. You can check previous newsletter editions here.
Fundamentals
A gentle introduction to Golang Modules
Go 1.11 introduced a new concept of Modules which brings first class support for managing dependency versions and enabling reproducible builds. By Ukiah Danger Smith.
How Go runtime implements maps efficiently (without generics)
This post discusses how maps are implemented in Go. It is based on a presentation I gave at the GoCon Spring 2018 conference in Tokyo, Japan. By Dave Cheney.
Best-practices
Clean Architecture in Go
Clean architecture is well known architecture these days. However, we may not know about details of the implementation very well. By Yusuke Hatanaka.
Port a Golang game to iOS
A way to build actual iOS game with Golang. By ntop.
Error handling nicely — Part 2
In this second part of the Error Handling series, error we’ll look at some ways to make processing easier in this nested function structure .
PushMan: The Koinex standard for realtime experience
The dev story of PushMan, our in-house realtime Publish-Subscribe (PubSub) system that delivers messages published from the polyglot Koinex platform. By Ankush Sharma.
Tutorials
bytes.Buffer in Go: Optimizations that do not work
Many Go programmers are familiar with bytes.Buffer . One of its advantages is that it avoids allocation of memory in the heap in the same way as “ small buffer / size optimization. By Iskander Sharipov.
Distributed tracing infrastructure with Jaeger on Kubernetes
One cannot overstate the importance of monitoring infrastructure as an integral component of distributed systems (or, any system for that matter). By Masroor Hasan.
Measuring integration test coverage rates in PouchContainer
This article takes a look at a tutorial that gives an explanation on how to measure integration test coverage rates in PouchContainer. By Leona Zhang.
Perspectives
Notes on the Go2 generics draft
Full disclosure, I’m against adding generics to Go. Arguments include:
- additional complexity generics would add to the language
- generics sacrifice readability for writability, which is the wrong tradeoff
- non orthogonality with interfaces — By Jason Moiron.
Regarding the Go 2 generics draft
I’ll explore and respond to the problem overview and contracts drafts of the generics design, authored by Ian Lance Taylor, Robert Griesemer, and Russ Cox. By Kevin Gillette.
Measuring errors vs. exceptions in Go and C++
The following document investigates the performance of signalling errors from functions in Go and C++. By Raphael Poss.
Maybe adding generics to Go IS about syntax after all
Update: This proposal is incomplete. It cannot replace two common use cases. By Dave Cheney.
Presentations
Implementing a network protocol in Go
An very detailed walkthrough of implementing a networking protocol (NDP in IPv6) in Go, with many, many code snippets. By Beyang Liu.
Advanced Testing in Go
In this tutorial, we’re going to be taking a look at some of the advanced testing practices used by the Go language developers in the official Golang/go repo. By Elliot Forbes.
Grant Griffiths — Black Box Monitoring in Go
You’ve set up your favorite monitoring agent on all of your services and you have incredible visibility into the internals of your infrastructure. All seems …
Weekly letter · Maarten Bezemer · Sept. 7 · Join for free or add the newsletter rss

