Fundamentals

By Ilija Eftimov

You can spend quite a bit of your programming career trying to avoid trees if you don’t understand them (which is what I had been doing for a while).

By Julia Schmidt

The release comes without any changes to the actual language specification, but improvements to the toolchain, runtime, and libraries.

By Bogdan Alexandru Militaru

Web service architecture is the first phase before building every project, it’s like you prepare to build a house and start by creating the architecture plan.

Best-practices

By Ibrahim Diallo

Until recently I had never encountered such an annoying bug/feature of Go.

By Aaron Chuo

A discussion blog about how to do error handling in Go.

By Peter Bourgon

At times I write HTTP servers that serve multiple values in response to one request. If the values are small, a common way is to define a JSON object to wrap them.

By Michelle Sanver

Having tried a lot of PHP serializer libraries we started giving up. Then Michael Weibel came with the brilliant idea of using Golang to solve the problem.

By Gabor Javorszky

Testing software is a very important part of your development, but the exact minutiae of how to actually go about it is still somewhat shrouded in a fog.

By Anton G

One can say, this is the Go path, errors aren’t exceptions and so on, but these statements did not help me somehow.

More best-practices:

Tutorials

By Cyan Tarek

Build your own OAuth2 server just like Google, Facebook, Github etc. Very helpful if you want to build a production ready public or private API.

By Mihalis Tsoukalos

Mi­halis Tsouka­los ex­plains how to de­velop fully-func­tional com­mand line util­i­ties with com­plete op­tions us­ing Viper and Co­bra.

By Aaron Powell

Welcome to the final article in our serie, congrats, you’ve made it this far!

Tools

By George Tankersley

I recently got into this thread that mentioned deprecating Go’s OpenPGP package and people always ask the same question: if not PGP, then what?

By Ales Nosek

Comparing OpenAPI and gRPC in terms of origins, communication protocol, API description format, tooling, code generation, and more.

By Eran Yanay

Go HTTP server provides great scalability, allocating a goroutine per connection, and reusing the efficient multiplexing and scheduling of the Go runtime. This repo holds the whole implementation of presented examples during Gophercon Israel 2019.

More tools:

Perspectives

By K. Scott Allen

From Wikipedia: The law of the instrument is a cognitive bias that involves an over-reliance on a familiar tool. The software industry is good at adopting standard data formats, then hyping and ultimately abusing those formats by pushing them into every conceivable nook and cranny of the trade.

By Francesc Campoy

By Jess Frazelle

I started dipping into some firmware and hardware things on my vacation. The first thing I dipped into was openbmc.

By Alex Hultman

We all know Express is slow, but can yet another “web framework” improve I/O performance? Beyond evading the overhead of Express, no, it cannot.

There are more perspectives on this topic, such as ‘Will Node.js always be slower then Golang? By RUVDS.

More perspectives:

Scientific papers

By the Purdue University & Pennsylvania State University, represented by tengfei tu, Linhai Song, Xiaoju Liu & Yiying Zhang

We performed the first systematic study on concurrency bugs in real Go programs. We studied six popular Go software including Docker, Kubernetes, and gRPC.

By the Purdue University & Pennsylvania State University, represented by Zeming Yu, Linhai Song & Yiying Zhang

We performed a preliminary study on Rust’s concurrency safety from two aspects: concurrency usage and concurrency bugs.

Presentations

By Pascal Costanza

By Anisse Astier

By Martin Sustrik

More presentations:

Looking forward to next week’s issue? Subscribe to my newsletter, so you’ll not have the fear of missing out.

Cheers,