Original post

Gazette #91

Weekly curated resources for devs.

Fundamentals

The Zen of Go

BY DAVE CHENEY

2 minutes – Ten engineering values for writing simple, readable, maintainable Go code. Presented at GopherCon Israel 2020.

Next steps for pkg.go.dev

BY JULIE QIU

3 minutes – In 2019, we launched go.dev, a new hub for Go developers. As part of the site, we also launched pkg.go.dev, a central source of information about Go packages and modules.

Go 1.15 holds off on major changes

BY PAUL KRILL

5 minutes – Proposals for the next version of Go include new Vet checks and a minor language adjustment.

Go: how are loops translated to assembly?

BY VINCENT BLANCHON

5 minutes – Loops are powerful concepts in and quite easy to handle. However, it has to be translated into basic instructions the computer can understand.

Real-world reports

Readiness notifications in Go

BY MICHAEL STAPELBERG

4 minutes – When spawning a child program, for example in an integration test, it is often helpful to know when the child program is ready to receive requests.

Computing rolling median in Go

BY TOM ARTIOM FIODOROV

3 minutes – Back in the day when I was teaching myself how to program and land a programming job, I’d spend quite some time learning basic data structures such as queues, stacks, heaps, linked lists, etc. To my disappointment though, now that I am employed in tech I almost never get a chance to implement these no more. Recently though I had a chance to brush up on my Computer Science 101 knowledge.

Why Discord is switching from Go to Rust

BY JESSE HOWARTH

8 minutes – Recently, we drastically improved the performance of a service by switching its implementation from Go to Rust. This post explains why it made sense for us to reimplement the service, how it was done, and the resulting performance improvements.

Mastering Go while learning containers

BY IVAN VELICHKO

4 minutes – An overview of some interesting projects written in Go and dealing with containers.

Channels inside channels pattern in Golang

BY GERGŐ HUSZTY

5 minutes – As part of my daily job working on IBM Cloud, sometimes I write code in Golang. This article is about a technique that I found useful.

Pass a streaming microservice from Node to Go

BY ADAM COMER

5 minutes – When building our Audio Ingestion microservice, we found that NodeJS wasn’t performant enough. Take a look at how we ended up solving the problem with Go.

Continuous profiling Go applications running in K8s

BY GIANLUCA ARBEZZANO

8 minutes – As at InfluxData we use K8s, our services already expose the pprof HTTP handler and we can not instrument all the services with the Profefe SDK, for those reasons we had to write our own collectors capable of getting pprof profiles via the Kubernetes API and to push them into Profefe.

I wrote Go for 3 weeks. You won’t believe what happened

BY DANILA KUTENIN

8 minutes – I am a C++ programmer and really like all this kind of C-ish stuff – from raw assembly to high level abstractions and SFINAE methods. For the past three weeks I managed to write lots of Go code – around 10k LOC without almost knowing anything when I started.

Adopting Go Modules and integrating with Github Actions

BY JONATHAN TURNER

5 minutes – This blog entry captures some lessons learnt when migrating the gokrb5 library to use modules for dependency management.

Tutorials

Testing in Go: golden files

BY ILIJA EFTIMOV

12 minutes – Things can get tricky when we are testing a unit whose output is cumbersome to hardcode. The straightforward remedy is to extract this cumbersome value to a file that we can then read and compare the output of the unit under test to the output of the file. In Go, we call such files golden files.

Secure coding in Go – input validation

BY ABDULLAH GARCIA

8 minutes – This article is the first of several to come about security.

Running Go CLI programs in the browser

BY MARTIN TOURNOIJ

3 minutes – Turns out it’s almost shockingly easy to run Go CLI programs in the browser with WebAssembly (WASM); as an example I’ll use my uni program.

Intro to REST API testing in Go with Resty

BY BAS DIJKSTRA

6 minutes – Just over a year ago, I was working in a team that, among other things, was responsible for developing and running some microservices that delivered data to a front end. It turned out those services were written in Go.

Integration tests with TestContainers Java & Go

BY GIANLUCA ARBEZZANO

5 minutes – Writing integration tests with TestContainers, including examples using Java and Golang.

More tutorials:

Tools

Release Github CLI in Go

BY GITHUB

Github released their new CLI written in Go.

GoReleaser: 3 years later

BY CARLOS BECKER

2 minutes – GoReleaser‘s journey begins in December 21, 2016: the day I made its very first commit. It has been a long road since then.

Using Golang’s Stringer tool

BY ARJUN MAHISHI

4 minutes – A CLI tool which is used via go generate.

TinyGo compiler internals: interrupts

BY TINYGO

4 minutes – Interrupts are crucial if you want to do anything high-performance on microcontrollers. Unfortunately, the only close substitute in the Go language is rather heavyweight. Therefore TinyGo uses a simpler way to work with interrupts.

Noise v1.1.2: fearless p2p networking in Go

BY KENTA IWASAKI

8 minutes – The release involves a complete refactor that has allowed for Noise to adopt significant performance, security, privacy, and developer ergonomic improvements.

Fiber: Express.js styled web framework in Go

BY VIC SHÓSTAK

5 minutes – This is not “yet another new framework, like X”, but a great tool for creating rapid web applications.

Perspectives

A universal I/O abstraction for C++

BY CORENTIN JABOT

9 minutes – While taking Golang into consideration.

Podcast: grok Go.dev w/ Julie Qiu & Steve Francia

BY JULIE QIU, CARMEN ANDOH, MAT RYER, JON CALHOUN & STEVE FRANCIA

78 minutes – Carmen, Mat, and Jon are joined by Steve Francia and Julie Qiu to discuss the new Go.dev website. What was the motivation behind it? What technology was used to build it?

Academic articles

Data race detection and Go

BY DANIEL SCHNETZER FAVA & MARTIN STEFFEN

8 minutes – Presenting a novel data race checker for Go, known as a concurrent language featuring channel communication as its sole synchronization primitive.

Using Go to calculate ground state energy of atoms

BY LAFITIARA GITA ARISHA, ENGGAR ALFIANTO & FEBDIAN RUSYDI

10 minutes – Based on the Density Functional Theory.

Presentations

Our business case for using Golang

BY YIGAL DUPPEN

26 minutes.

About my projects

Go Gazette is a mailing consisting of the latest and finest blogs and tools curated for Golang professionals. I am your curator Maarten Bezemer, building Dutch cloud-based platform Jexia. Our platform is providing hosting and several serverless back-end functions for front-end or full-stack developers.

Product Examples Pricing