#262 — May 16, 2019
Golang Weekly
A Series on Garbage Collection in Go — Want to understand more about the mechanics behind Go’s garbage collection system? Go trainer extraordinaire William Kennedy dives in with this series.
William Kennedy
The Go Playground Has Just Gotten A Lot Better — The Go Playground has long been a neat online sandbox for playing with Go related ideas and this week it has taken two huge steps forward:
- Third party import support. Packages get pulled in via proxy.golang.org.
- Multi-file support. You can now put multiple files into the same playground instance. This is really cool.
The Go Playground
How to Test Software: Mocking, Stubbing, and Contract Testing — We’ll cover the techniques of mocking and stubbing, and test-driven development to help each testing layer. First, let’s review the test pyramid. This helps illustrate the difference between different kinds of tests and when it’s advantageous to do them.
CircleCI sponsor
Introducing GopenPGP: An OpenPGP-Based Encryption Library for Native Apps and Go — Developed by ProtonMail and built on a fork of the Go crypto package. Project homepage.
GopenPGP
Quicktest: Wrapping *testing.T for Fun and Profit — Quicktest is a set of new lightweight Go testing helpers that add extra sugar such as assertions, pretty printing and deferred execution to tests.
Savoury Morsels
A Peek at Better Go Error Handling with xerrors — xerrors implements functions to manipulate errors and is to be largely included in Go 1.13’s errors package, so get a taste of the future today.
Luke Freeman
💻 Jobs
Product-Focused & Driven Frontend Engineers in Stockholm — Join our 30-person team of A-players, solve problems at global scale & help us become the most trustworthy online health company.
Diet Doctor Sweden AB
Find a Go Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.
Vettery
📘 Articles & Tutorials
Notes on Converting a Repository to Use Modules — An incremental approach that covers a couple of special cases, like dependencies with local changes and keeping the vendor directory around.
Mark Fletcher
Using Postgres's JSONB Columns with Go — And if you like Postgres, we have a Postgres newsletter too! :-)
Alex Edwards
▶ Discussing Go for Beginners — Yes, this is definitely an episode for beginners who want to learn how to learn Go, so pass it on (and get them to subscribe to Golang Weekly too!)
Go Time Podcast
Do You Need Help Building and Migrating in an Application to Go?
Ardan Labs sponsor
Emulating an OpenMP Parallel For-Loop with Goroutines — OpenMP is a popular API for shared memory multiprocessing (predominantly in C and C++), something goroutines are also suited to enable.
Tim Downey
Encrypting Streams in Go — If you have large files that require encryption, the main option is using stream ciphers, which you can do with the standard library.
Michael Turner
Why Bother Writing Tests At All? — Not super Go specific, but solid advice on why writing tests is critical to successful product development because, after all, someone will be testing your software and it might not be someone with good intentions.
Dave Cheney
🔧 Tools & Code
panicparse: A Panic Stack Trace Parser and Debugging Tool — "Crash your app in style"(!) This tool has just been updated to using Go modules and gives you more compact and readable output than a standard stack dump.
M-A
kcp-go: A Production-Grade Reliable-UDP Library for Go — It’s UDP, but not as you know it as this library adds resilient, ordered and error-checked delivery on top. Aimed at use cases like gaming and streaming.
Daniel Fu
gqlgen: A go generate-Based GraphQL Server Library — Check out the getting started guide for a feel for the project.
99designs
Get the Resources Your Go Apps Need Without the Billing Surprises — Deploy your next Go project on the most developer-friendly cloud platform with flat pricing across all global regions.
DigitalOcean sponsor
Godo: A DigitalOcean Go API Client — A client library for accessing the DigitalOcean V2 API.
DigitalOcean
uiprogress: Render Progress Bars in Terminal Apps — progressbar is a similar library worth considering too.
Greg Osuri
dicom: A High Performance DICOM Medical Image Parser — This is a a very specialized med-tech usage of Go, but if you’ve had an MRI, say, done (I have!) and they gave you a disc with the data on it, this could be of interest. Or if you're building medical software, of course.. 😉
Suyash Kumar