Go interfaces, reflection, and binary size
This page is auto-generated from Github Actions workflow that runs every day at night and fetches the 5 latest articles from each of my favorite blogs.
A hot cache key expires and a hundred requests issue the same query at once, saturating the database. Go's singleflight package coalesces those duplicate calls into one. How to wire it up, how to measure whether it's firing, and why per-pod coalescing is usually enough.
#607 — June 26, 2026 Read the Web Version Go Weekly Awesome Go: ~3000 Categorized Go Resources — Most curated ‘awesome’ collections go stale, but I’ve been impressed that Go’s gets almost-daily updates! It’s a perennially...
The world runs on legacy code—hundreds of millions of lines of it. Can we rewrite it all in Rust? And is that even a good idea?
A for-range over a channel that's never closed leaks the receiver. Why a fixed number of receives is safe, why a range isn't, and how to catch it with Go 1.27's leak profile.
#606 — June 19, 2026 Read the Web Version Go Weekly How Go Reflection Really Works — Reflection in a compiled, statically-typed language sounds impossible, but Go can print a struct’s field names, types, and tags at runtime. This...
In the previous article we watched the runtime rebuild an entire stack trace out of metadata the compiler and linker had frozen into the binary at build time. I told you at the end that reflect works on exactly the same trick — metadata baked into the binary, only pointed at y...
Recently I came upon Pluggy, a Python library for developing plugin systems. It was originally developed as part of the pytest project - known for its rich plugin ecosystem - and later extracted into a standalone library. You're supposed to reach out for Pluggy if you want to add...
#605 — June 12, 2026 Read the Web Version Go Weekly How Much Do AMD64 Microarchitecture Levels Help? — A benchmark of Go’s GOAMD64 levels on roaring shows gains from v2/v3, but little from v4. A reminder to benchmark CPU-heavy cod...