… testify ! As you know, destination is not as important as the journey, so now that we got this out of the way, bear with me for the rest of this article, and I’ll give you the top 10, and many more stats 😊 You might even learn a few things along the way! Without usage statistics, finding useful and reliable dependencies can be a bit of a challenge. In the Go community, we basically have to rely…
In my last work experience, I designed what I consider a pretty cool and efficient way to manage database transactions across a Go codebase. In a nutshell, I wanted to use database transactions in my business logic without exposing database internals. After dogfooding a solution for a while, I extracted it, improved it, and enriched it, to finally release it as the transactor library. This library…
Go 1.23 , amongst other features , brought Iterators to the standard library. Iterators are basically a way to make the range operator work on functions implementing a specific interface. This lets you write code like this: for value := range myIterator () { // ... } The main difference with using range over a slice or a map is that an iterator can fetch data lazily. I doesn’t need to…
I know TDD. I know what real TDD is. I know how to do it right, whatever that means depending on the TDD practitioner. I still don’t like this practice, and rarely use it, except in 2 situations: I’m fixing a bug in an existing code base: in this case I’ll write a test first to reproduce and isolate the bug, and then fix it and refactor if needed I’m adding a new use case to an existing feature,…
The shell is an odd beast. Although it goes against every current trend in software engineering (strong typing, compile checks over runtime checks, ...), shell scripts are here to stay, and still constitute an important part of every developer's life. The weird thing about shell scripts is that even strong advocates of good practices gladly forget all they know when it comes to shell…
screen , or GNU screen, is a terminal multiplexer. It allows to manage multiple terminal sessions within the same console. In a way, it does the same thing as modern terminal emulators such as Terminator or Terminology with their built-in tab system and layout management. The main benefit is that screen also works through an SSH connection: you will be able to use your screen knowledge and…