#274 — August 8, 2019

Read on the Web

Golang Weekly

Thinking About Go's Proposal Process — The first in a series of posts by core Go developer Russ Cox on the process behind deciding what to include in the language and how such proposals are reviewed.

Russ Cox

Go Interfaces Explained — Interfaces are a commonly misunderstood part of Go programming, so here Alex attempts to give a clear explanation of what they are, why you might use them, and how to get started. This is very accessible!

Alex Edwards

Do You Need Golang or Kubernetes Training? — We offer on-site corporate training for engineers that want to learn Go (Golang) or Kubernetes. Having trained over 4,000 engineers since 2013, we have carefully crafted these classes for students to get as much value as possible.

Ardan Labs sponsor

Experiment, Simplify, Ship: How the Go Team is Headed Towards Go 2 — We’re still waiting on the videos of the GopherCon talks (which we’ll be linking) but for now enjoy this blog writeup of Russ Cox’s talk where he looked at the ‘path to Go 2’, how the Go team works on the language, a lot of specifics on error handling, and some other areas the team are experimenting with. (If this seems familiar, we linked to a liveblog of this talk last week, but Russ’s writeup goes into more depth.)

Russ Cox

gomodifytags 1.0: A Go Tool to Modify struct Field Tags — Makes life easier if you want to work with editing, updating, or adding tags in a struct field. Works at the terminal, but integrates with vim, Atom, Emacs, and VS Code too.

Fatih Arslan

💻 Jobs

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.


Go Developers Are in Demand on Vettery — Ready for a bold career move? Make a free profile, name your salary, and connect with hiring managers from top employers today.


📘 Articles & Tutorials

An Introduction to go-sundheit: A Health Checking Library for Go — Surely one of the best Go library names so far! go-sundheit is for defining health checks to check elements of your service or dependencies on a regular basis. Check the examples in the post.

Eran Harel

Why You Should Use A Go Module Proxy — Rather than downloading modules from their source repos every time, using a module proxy (specified via GOPROXY) can help on numerous fronts.. security, speed, and reliability.

Fatih Arslan

What It Means to Be Remote-First Vs. Remote-Friendly — Being a truly remote-first organization requires intentionality that spans people, tooling, and process.

CircleCI sponsor

Package Management with Go Modules: A Pragmatic Guide — A practical look at getting started with Go modules to manage your dependencies.

Alexander Diachenko

RPC (Remote Procedure Calls) Explained By Building a Simple RPC Framework from Scratch — A demonstration of serializing function calls and passing data back and forth at a low level over the network. Fun as a learning experience, but you might want to use something like gRPC or HTTP in production.

Ankur Anand

One Developer's Experience of GopherCon 2019 — If you didn’t get along to the world’s biggest annual Go conference two weeks ago, maybe Mickaël’s comments will get you excited for next year.

Mickaël Rémond

▶  If You've Never Been to GopherCon... — If the item above whet your appetite for attending GopherCon next year, this round table discussion about what to expect, what to take, and what to do at the event will be useful.

Go Time podcast

🛠 Code & Tools

Sampler: A Visualization Dashboard for Any Shell Commands — This is pretty neat. Define what commands you want to be run and at what intervals and the results can be shoehorned into different types of terminal-based visualizations such as sparklines, running charts, gauges and even ASCII art.

Alexander Lukyanchikov

go-arg: Struct-based Argument Parsing in Go — As of v1.1, released this week, it supports subcommands too (e.g. constructions like git checkout).

Alex Flint

lego: A Let's Encrypt Client and ACME Library — Lets you obtain certificates, handle ACME challenges, interact with DNS providers, and more.

Sebastian Erhart

Route Your Data to Any Analytics Service from Your Go Code

Segment sponsor

Compress: Optimized Compression Packages — Contains gzip, zlib, zip, and flate packages that can act as faster drop-in replacements for the standard libraries.

Klaus Post

cli: A Simple and Fast Way to Build CLI Apps in Go — A long standing library (that somehow we’ve failed to link to before) that’s just had its first release in two years. Great to see someone has taken it over.

Jeremy Saenz and Contributors