Ideally, every function that writes to the stdout probably should ask for a io.Writer and
write to it instead. However, it’s common to encounter functions like this:
func frobnicate() {
fmt.Println("do something")
}
This would be easier to test if frobnicate wou...
As mentioned in Using Renovate to manage updates to golangci-lint versions I very much recommend using Renovate to update your golangci-lint versions.
With the release of golangci-lint v2 a couple of weeks ago, consumers need to perform a one-time migration of their configuration...
#549 — April 9, 2025
Unsub | Web Version
Go Weekly
Faster Shuffling in Go with Batching — Put down that deck of cards.. ‘shuffling’ here refers to moving the contents of an array about. It is based on expensive random inte...
A couple of weeks ago, I joined the lovely Kris Brandow and Ian Wester-Lopshire on the Fallthrough podcast to talk some more about API design.
As I mentioned in I'm on Fallthrough: An Exploration of APIs, Versioning, & HTTP this was a planned follow-up, as we didn't quite cha...
The word2vec model was proposed in a 2013 paper by Google researchers called
"Efficient Estimation of Word Representations in Vector Space",
and was further refined by additional papers from the same team. It kick-started
the modern use of embeddings - dense vector repr...
Quick takeaways
Clean Architecture is most beneficial for complex projects with larger teams - for small teams or simple projects, it can become overengineering.
Separation of concerns is the core benefit - keeping domain logic separate from implementation details makes code mor...
#548 — April 2, 2025
Unsub | Web Version
Go Weekly
A Guide to Optimizing for High Performance in Go — An in-progress collection of technical articles aimed at helping Go developers write faster, more efficient apps. The initial foc...
Better benchmark looping in Go 1.24.