Update 2023-09-20: If you're writing a module that is consumed through go install, check out this separate post to avoid a gotcha.
If you're building on top of an Open Source Go library through Go modules, there may be times that you need to use a forked version of the project, s...
Fun fact: it is actually winter now here in Brazil. Regardless, this release is packed with new features, quality-of-life improvements and bug fixes!
If you're writing software in Go, you're likely to not be hitting any particularly slow tests, as the language and tooling is very efficient.
But as written about in Default Your Tests to run in Parallel, I recommend always running in parallel, so you can surface implementation i...
If you're writing software in Go, you're likely to not be hitting any particularly slow tests, as the language and tooling is very efficient.
But sometimes there are tests that you don't want to execute when go test is run, for instance if they're full integration/application tes...
This article was originally published on the Deliveroo engineering blog.
I'm Jamie, and I recently joined the Care Applications team as a Senior Software Engineer. In Care Applications we build and maintain software that connects consumers, riders, restaurants and agents, making...
The problem
Let's say we're building a RESTful API and want to be able to produce several errors of the following consistent format. We want to create a specific type per error, so we can more easily write some code like so:
err := NewErrInternal()
if e, ok := err.(*ErrInvalidRe...
If you're writing Go tests that interact with an API, at some point you'll want to fully test your built API, but don't necessarily want to have the server actually running + interacting with real dependencies.
For instance, you may be wanting to use a generated OpenAPI client, b...
I'm a big fan of feed formats like RSS/Atom, Microformats2 and JSON feed, and like to use a feed reader as my primary reading source.
One of the great things about things like I mentioned in Make Your RSS Feed Discoverable is that there are built-in ways that you can make them au...
Update 2025-01-29: it's worth reading my morer recent post, Go 1.24's go tool is one of the best additions to the ecosystem in years, which goes into the path forwards, from the upcoming Go 1.24 release.
When working with Go codebases, it's likely that you'll be delegating some f...