Writing multi-package analysis tools for Go

In my posts about embedding in Go last month, I provided multiple examples of different kinds of embeddings from the Go standard library. How did I find these examples? I wish I could say it all comes from a deep familiarity with the breadth and depth of the standard library …

Solving real time collaboration using Eventual Consistency

The collaboration problem: overwriting each other changes In traditional online applications, when you make a modification to the state of the object you work on, the change propagates to a central server that holds the “truth”. The server registers the change and sends back...

How to implement Clean Architecture in Go (Golang)

The authors of Accelerate dedicate a whole chapter to software architecture and how it affects development performance. One thing that often comes up is designing applications to be “loosely coupled”. The goal is for your architecture to support the ability of teams...

Introductions

Hi, I'm Markus. 😊

Fuzzing in Go

An overview of fuzz testing and the go-fuzz tool, as well as a look at the recent draft design for including fuzz testing in the `go` tool (LWN.net).

Generics Part 02: Underlying Types

Changes The draft is a living document which means these posts will need to change over time. This section documents when changes have taken place to this post. 21/08/20 : Moving forward with the generics design draft Series Index Generics Part 01: Basic Syntax Generics Part 02:...

Searching code with Sourcegraph

A look at Sourcegraph, a code search and code intelligence tool (LWN.net).

Python and Go : Part III - Packaging Python Code

Series Index Python and Go: Part I - gRPC Python and Go: Part II - Extending Python With Go Python and Go: Part III - Packaging Python Code Python and Go: Part IV - Using Python in Memory Introduction In the previous post we compiled Go code to a shared library and used it from t...

Automating a Linux in Windows dev setup

Last time I used Windows on my main development machine was sometime in the early 2000s. Over the years, I had several side Windows machines (usually because I needed Visual Studio) but I was never really serious about using a PC as my main dev machine. Things have changed a lot...

Different approaches to HTTP routing in Go

Compares routing techniques in Go, including five custom approaches and three using third-party routing libraries.