Ebiten is an open source game library in Go for building 2D games that can be ran across multiple platforms. Ebiten games work on desktop, web browsers (through WebAssembly), as well as on Mobile and even on Nintendo Switch.
In Go, we use pointers to define that a value may be optional.
Often, we'll use the & operator to provide the pointer value to a method, so we can do something like this:
method(&api.Response{})
The issue is that not every type can use the & operator, for instance we...
When you're writing a reusable piece of code in a library, you often want to allow your code to be extensible to a point, in a way that allows safely modify behaviour without exposing too many of the internal workings.
A pattern that seems to be working really well in Go is by pr...
I’m leaving my role as the Product Lead for the Go Language at Google. I’m super proud of everything the Go team has accomplished in the last six years, and I’ve never been more excited for Go’s future. Read on if you’re interested in what led me to my decis...
As mentioned in my post about Shipping services more quickly with design-first OpenAPI contracts, I've recently been working on a fair bit of OpenAPI-driven design-first APIs, in Go. For more info on what that is, and why you'd want to do it, I'd recommend having a read of that p...
I enjoy hacking on Go tooling
(Go programs that analyze and manipulate other Go programs), and a few weeks ago
an interesting Stack Overflow question
caught my attention. Given a function with a parameter of some structure type:
func foo(param SomeType) {}
How can we examine the...
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!
GoReleaser screenshot
Highlights
GoReleaser Pro can now skip global after hooks with -skip-after;
GoReleaser Pr...