In case you missed our note last week, we've moved this newsletter to be sent on Fridays, so we're not late.. honest! 😄 — Your editors, Peter Cooper and Glenn Goodrich |
Building a Better Go Linker— Go’s linker combines the outputs of the Go compiler into the eventual executables you run, but its (lack of) efficiency is causing problems as Go develops. Google’s Austin Clements explains the problem and looks at how to build a better linker for Go. Austin Clements |
![]() Do You Need Go 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 |
Don’t Force Allocations on the Callers of Your API— We all know about the ‘evils’ of premature optimization but when it comes to designing an API that you might not want to change later.. it’s worth thinking about the performance implications of the choices you make. Dave Cheney |
▶ Discussing Generics with Ian Lance Taylor— What are generics and why are they useful? Why aren’t interfaces enough? How will the standard library change if generics are added to Go? These questions and more are discussed on the latest Go Time episode. (54 minutes.) Go Time Podcast podcast |
Creating Custom Errors in Go— Sometimes errors.New and fmt.Errorf aren’t quite enough for communicating complicated error information to your users (or to your future self!) Here’s a look at what more you can do. DigitalOcean |
Using SO_PEERCRED in Go— A practical look at a slightly obscure Unix domain socket option that, intriguingly, provides the server process with user, group, and process IDs of any connected client. James Bowen |
GoVector: Vector Clock Logging Library— A vector clock algorithm is used to order events in a distributed system in lieu of a centralized clock. GoVector started as a teaching tool. Distributed Clocks |
quic-go: A QUIC Implementation in Pure Go— QUIC is a transport layer network protocol originally developed at Google that’s forming the basis for HTTP/3. This library may not be of direct interest to many but it can form the basis of HTTP/3 implementations in other projects, such as in Caddy. Lucas Clemente |
|