This article is part of a group of articles Architecting go libraries for semantic versioning in which I am providing various patterns to help building Go libraries that can remain modular, and yet abide to semver. Let’s imagine your API has the following interface: type Animal interface { Name() string } One of the users of your library has implemented this interface with the following: type Cat struct { name string } func (c *Cat) Name() string { return c.| Software Engineering and Stuff
This article is part of a group of articles Architecting go libraries for semantic versioning in which I am providing various patterns to help building Go libraries that can remain modular, and yet abide to semver. Let’s say you have the following partial implementation of an HTTP client. package client type Option interface { applyOption(*Client) } type clientOptionFunc func(*Client) func (f clientOptionFunc) applyOption(c *Client) { f(c) } type Client struct { hostname string } func NewCl...| Software Engineering and Stuff
OpenTelemetry is making observability much easier, especially by providing the| dmathieu.com
OpenTelemetry is a quite new tool meant to| dmathieu.com
Prometheus is an Open-Source monitoring system and| dmathieu.com
Warning: The following essay is purely a work of fiction. Any resemblance with existing products, open-source projects or wales is pure coincidence.| dmathieu.com
I have recently been experimenting with Kubernetes, starting with a managed cluster.| dmathieu.com
It is common knowledge that Heroku has a fair number of Erlang components, we even published a book.| dmathieu.com
For a number of months now, I’ve been wanting to learn some Erlang.| dmathieu.com
Sidekiq kind of revolutionized background job processing in ruby.| dmathieu.com