#280 — September 20, 2019

Read on the Web

Golang Weekly

Go Internals: Capturing Loop Variables in Closures — A detailed (right down to the assembly!) look into the why and how of a common beginner mistake with looping and goroutines where the last value of the variable is the only one you see.

Eli Bendersky

TinyGo 0.8: The Go Compiler for 'Small Places' — Targeting microcontrollers, WebAssembly, and more, TinyGo adds support for more devices including, intriguingly, preliminary support for the Game Boy Advance!


Monitor and Protect Your Golang Apps — Alongside performance, error, and log monitoring, it’s time to bake security into your Golang apps. Sqreen allows modern teams to ship rapidly and confidently by infusing security into every app in production. Try Sqreen for free.

Sqreen sponsor

Using GitHub Actions with Go — I imagine there will be quite a few articles like this in the coming months, as GitHub Actions (while still in beta) is now immediately open to anyone who applies.

Krzysztof Kowalczyk

Testing in Go: Fixtures — Fixtures are a concept popularized by Ruby on Rails, but they are useful in all languages that value testing. Here’s one way to use fixtures in Go.

Ilija Eftimov

GoLab: A Go Conference in Italy (Oct 20-22) — Well priced, a good selection of speakers, and there’s going to be a summit of Go contributors alongside.


💻 Jobs

Golang Developer at X-Team (Remote) — Join the most energizing community for developers. Work from anywhere with the world's leading brands.


Sourcegraph Is Growing. Apply Now to Grow with Us — Build the best large scale developer tools. Product-market fit, clear goals, talented team, autonomy, open source, remote first.


Find a Go job through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.


📘 Articles & Tutorials

12 Factor Configuration with Go's flag Package — An easy way to comply with 12 factor methodology for your config requirements using the standard library’s command line flag parsing package.


How I'm Writing Serverless Services in Go — Some tips and tricks for writing robust serverless Go services on AWS Lambda.

Ewan Valentine

Automated Code Reviews for Go — Set standards on coverage, duplication, complexity, and style issues and see real-time feedback in your Git workflow.

Codacy sponsor

Why Go and Not Rust? — If you are wondering how Rust and Go differ, check it out. I think my favorite takeaway is “Go is a better Java / C#…Rust is a better C++”

Loris Cro

Package Management in Go — A look at the history of package management and how we got to modules, followed by what we can do with modules.


Designing a Data Migrator in Go — The tweaks and considerations at each participant of the process (source, workers, destination) to make data migration for millions of records both possible and fast.

Ankit Pokhrel

Go Modules and Major Versions — There are some gotchas when using modules that are beyond v2…

Matt Farina

Notes on the Structure of ELF Go Binaries

Chris Siebenmann

Go Slices Demystified — An attempt at taking a ‘slightly different approach’ to teaching the mechanics of Go’s slice type.

John Reese

🛠 Code & Tools

FastHTTP 1.5: Fast HTTP Server and Client Package for Go

Aliaksandr Valialkin

Traefik 2.0: The Go Powered Cloud-Native Edge RouterTraefik is a popular HTTP and TCP-based reverse proxy and load balancer. It now supports routing TCP and HTTP over the same port, complete with TLS support using SNI. Support for middleware has also been introduced.

Gérald Croës

gnet: A High-Performance, Non-Blocking, Event-Loop Networking Library“It makes direct epoll and kqueue syscalls rather than using the standard Go net package, and works in a similar manner as libuv and libevent.”

Andy Pan

New Public Go, Docker & Kubernetes Training Are Available for You

Ardan Labs sponsor

Jitterbug: Tickers with Random Jitterjitterbug.Ticker behaves like time.Ticker

Louis Thibault

TurboCookedRabbit: A User Friendly RabbitMQ Library Written in Go — Poor rabbit!

Tristan (HouseCat) Hyams

pflag: A Drop-in Replacement for flag, Implementing POSIX/GNU-style -- Flags

Steve Francia