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

ukiahsmith.com

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)

dave.cheney.net

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

medium.com

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

dev.to

A way to build actual iOS game with Golang. By ntop.

Error handling nicely — Part 2

www.evernote.com

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 .

By JBD

PushMan: The Koinex standard for realtime experience

medium.com

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

www.evernote.com

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.

By Damian Gryski

Distributed tracing infrastructure with Jaeger on Kubernetes

medium.com

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

dzone.com

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

jmoiron.net

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

medium.com

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.

By Damian Gryski

Measuring errors vs. exceptions in Go and C++

science.raphael.poss.name

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

dave.cheney.net

Update: This proposal is incomplete. It cannot replace two common use cases. By Dave Cheney.

Presentations

Implementing a network protocol in Go

about.sourcegraph.com

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

www.youtube.com

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

www.youtube.com

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 …

By Grant Griffiths
Weekly letter · Maarten Bezemer · Sept. 7 · Join for free or add the newsletter rss