This post examines the use of structs and interfaces in Go, fundamental concepts for building flexible and maintainable software. It provides clear examples of how to define and implement these types to create well-structured programs.
https://getstream.io/blog/go-structs-interfaces/
https://getstream.io/blog/go-structs-interfaces/
getstream.io
Go Structs and Interfaces Made Simple
Learn how Go's structs and interfaces work, how they differ from traditional OOP, and how to leverage composition over inheritance for cleaner, more maintainable code.
👍1
This publication explores the utility of multiple return values in Go, a feature that allows functions to return both a result and an error status. The author demonstrates how this pattern contributes to writing cleaner and more explicit code.
https://herecomesthemoon.net/2025/03/multiple-return-values-in-go/
https://herecomesthemoon.net/2025/03/multiple-return-values-in-go/
MOND←TECH MAGAZINE
Were multiple return values Go's biggest mistake?
Yet another article complaining about Go’s error handling.
This documentation covers essential benchmarking techniques in Go 1.24 that developers should not overlook. Paweł Jarosz shares practical advice on how to accurately measure and optimize code performance.
https://jarosz.dev/code/benchmarking-what-you-cannot-miss-in-go-1.24/
https://jarosz.dev/code/benchmarking-what-you-cannot-miss-in-go-1.24/
Jakub Jarosz
Benchmarking: What You Can't Miss in Go 1.24
For us Go developers, writing less code means fewer opportunities to make mistakes. But how about achieving more by doing less? That sounds appealing. Isn’t it? And how about spending less time writing code to force the compiler not to optimise the benchmarking…
❤1
In this piece, you'll find out how engineers at GitHub approach the challenge of understanding new codebases. The authors share strategies and tools that can help any developer quickly become productive in an unfamiliar project.
https://github.blog/developer-skills/application-development/how-github-engineers-learn-new-codebases/
https://github.blog/developer-skills/application-development/how-github-engineers-learn-new-codebases/
The GitHub Blog
How GitHub engineers learn new codebases
Strategies to quickly get up to speed, whether you're a seasoned engineer or a newcomer to the field.
👍1
In his post, Thomas Paschalis discusses the design trade-offs between using shallow versus deep interfaces in software architecture. He argues that thoughtful consideration of interface depth is crucial for creating maintainable and scalable systems.
https://tpaschalis.me/shallow-vs-deep-interfaces/
https://tpaschalis.me/shallow-vs-deep-interfaces/
tpaschalis.me
Deep vs Shallow Go interfaces
I recently read A Philosophy of Software Design by John Ousterhout (of Tcl/Tk, Raft, Sprite fame).
The Storj blogpost dives into a low-level performance optimization question related to integer multiplication in Go. It carefully analyzes whether a specific compiler optimization provides a tangible benefit in real-world scenarios.
https://storj.dev/blog/two-mul-or-not-two-mul
https://storj.dev/blog/two-mul-or-not-two-mul
storj.dev
Two mul or not two mul: how I found a 20% improvement in ed25519 in golang | Storj Engineering Blog
Low level optimizations are tricky and sometimes unintuitive. We'll take a look at a story of optimizing ed25519 signing and verification.
A lightweight Go package to generate unique, symmetric identicons based on an input string. Easily integrate with your Go project to create visual avatars for users.
https://github.com/MuhammadSaim/goavatar
https://github.com/MuhammadSaim/goavatar
GitHub
GitHub - MuhammadSaim/goavatar: A lightweight Go package to generate unique, symmetric identicons based on an input string. Easily…
A lightweight Go package to generate unique, symmetric identicons based on an input string. Easily integrate with your Go project to create visual avatars for users. - MuhammadSaim/goavatar
This guide provides a straightforward method for embedding the current Git hash into a Go binary at compile time. Following these steps ensures that application versions can be easily and accurately identified.
https://blog.carlana.net/post/2023/golang-git-hash-how-to/
https://blog.carlana.net/post/2023/golang-git-hash-how-to/
blog.carlana.net
How to include Git version information in Go
It's easy to automatically include a Git revision with every Go build
🔥1
A research paper from Russ Cox introduces a novel approach to measuring code coverage based on changes in a diff. This method, diffcover, aims to make code reviews more effective by focusing testing on new and modified code.
https://research.swtch.com/diffcover
https://research.swtch.com/diffcover
This story from HackerNoon showcases the power and simplicity of Go by demonstrating how to build a fully functional load balancer in just 150 lines of code. It breaks down the noscript to show how standard library packages can be combined to create powerful networking tools.
https://hackernoon.com/this-150-line-go-noscript-is-actually-a-full-on-load-balancer
https://hackernoon.com/this-150-line-go-noscript-is-actually-a-full-on-load-balancer
Hackernoon
This 150-Line Go Script Is Actually a Full-On Load Balancer
This article will show you how to create a simple HTTP load balancer in Go, using only the standard library.
❤1