#254 — March 21, 2019

Read on the Web

Golang Weekly

Using Go Modules — If you’ve not played with modules yet due to a lack of a canonical, official tutorial, wait no more. This post on the official Go blog covers modules, as supported in Go 1.11 and Go 1.12, from their creation to adding, upgrading and removing dependencies. Since module mode will be the default from Go 1.13 onward, now is the perfect time to cover this ground.

Tyler Bui-Palsulich and Eno Compton

Fyne 1.0: A Cross Platform GUI Development Toolkit — Fyne doesn’t take the common ‘webview’ approach but instead renders its own widgets and canvases via OpenGL. Works on Windows, macOS and Linux. GitHub repo.

Williams, O'Connor, Corbo and Hovey

Redis Made Observable — RedisGreen provides better tools, instrumentation and support for high-performance Redis.

RedisGreen sponsor

Go 1.12.1 and Go 1.11.6 Released — A variety of relatively minor fixes to things like cgo, the go command, and several packages including fmt, net/smtp, os, path/filepath, sync, and template.

Katie Hockman

The New Go Developer Network — GoBridge and Google have come together to create the Go Developer Network (GDN), a collection of Go user groups working together with a shared mission to empower developer communities. If you currently run a user group, consider joining.

GoBridge Leadership Team

A Cheat Sheet: 40+ Practical String Techniquesstrings.Join([]string{"This", "is", "indeed", "practical"}, " ")

Stefan Nilsson

💻 Jobs

Sr. Fullstack Engineer (Remote) — Sticker Mule is looking for passionate developers to join our remote team. Come help us become the Internet’s best place to shop and work.

Sticker Mule

Find A Job Through Vettery — Vettery specializes in dev roles and is completely free for job seekers.


📘 Articles & Tutorials

Building a Useful Serverless Site From Scratch with Go — This tutorial brings a lot of ideas together, and uses AWS S3, API Gateway, AWS Lambda, along with Terraform to deploy everything.

Roger Welin

Writing a Server Sent Events (SSE) Server in Go — Leveraging Go’s http.Handler interface and concurrency primitives to allow web clients to subscribe to an event stream. (SSEs are supported by all modern browsers except Edge.)


Stream Bigger with Bitmovin — Innovative cloud-based API software solutions that enable developers to play, encode and analyze video, seamlessly, in broadcast quality, anywhere.

Bitmovin sponsor

Integration Testing in Go: Executing Tests with Docker — The first post in a three-part series to get up and running with a Docker-based test environment.

Ardan Labs

Reminder: Don’t Commit Improperly Formatted Go Code — You may think this is nitpicky, but it really is a kind of rule of engagement in Go.

Cory LaNou

Exposing Go Modules to Prometheus — Expose the versions of everything you have running in production to Prometheus, just ignore the fact that it’s not really a metric.

Povilas Versockas

An Example of Behavior-Driven Development (BDD) in Go — Once particularly popular in the Ruby world, with BDD you write what your code should do in the form of a specification.

Alice Girard

Testing Is Not for Beginners — An opinion that is sure to rile up some folks, but you should read the whole article before reacting.

Jon Calhoun

🔧 Tools & Code

Docli: A Declarative Way to Define CLI Tools — Docli takes the help text of your command line tool and parses it into a struct based on its options. You kind of have to see it to get it, but it’s cool.

Marcelo Franco Filipe Alves

go2ll-talk: Code and Slides from Live-Coding a Basic Go Compiler in 20 Minutes — From a talk given recently at the Sheffield Go Meetup (unrecorded, unfortunately), this is an interesting learning effort that leverages existing packages for simplicity to generate an AST and then some LLVM IR from that.

Peter Waller

Shop Like a Developer – Discover and Experiment with Hot New Cloud Services 🔥

Manifold sponsor

Kaf: A Modern CLI for Apache Kafka, Written in Go

infinimesh, Inc.

countdown: Terminal Countdown Timer — Feel free to run countdown 168h to count down to the next Golang Weekly, perhaps(!)

Anton Medvedev