From its inception, the Web has been a game of whackamole between people finding
security holes and exploits, and other people plugging these holes and adding
defensive security mechanisms.
One of the busiest arenas in this struggle is the interaction between code
running on one...
As the Go ecosystem gets bigger, gopls must get smaller
Series
Here are all the posts in this series about the slices package.
Binary Search
Clip, Clone, and Compact
Compare
Contains, Delete, and Equal
Introduction
In the last post of this series, I discussed the Compare API from the slices package. In this post, I will share how th...
Introduction to profile-guided optimization, generally available in Go 1.21.
#474 — September 5, 2023
Unsub | Web Version
Go Weekly
Perfectly Reproducible, Verified Go Toolchains — Go 1.21 contains some significant features, but truly reproducible builds is a big deal and Russ goes (deep) into how it wor...
Suppose, you have a function that takes an option struct and a message as input. Then it
stylizes the message according to the option fields and prints it. What’s the most sensible
API you can offer for users to configure your function? Observe:
// app/src
package src
// O...
Suppose, you have a function that takes an option struct and a message as input. Then it
stylizes the message according to the option fields and prints it. What’s the most sensible
API you can offer for users to configure your function? Observe:
// app/src
package src
// O...
Suppose, you have a function that takes an option struct and a message as input. Then it
stylizes the message according to the option fields and prints it. What’s the most sensible
API you can offer for users to configure your function? Observe:
// app/src
package src
// O...
Compare three Go option patterns: exposed structs, option constructors, and functional options. Learn when to use each for clean APIs.
When you're writing pure net/http HTTP services with Go, you may want to wrap them in a middleware, for instance to ensure that authentication is provided, or to provide logging.
Having largely just used gorilla/mux, I found it was a little bit awkward to do so, but with thanks t...