Pointers Might Not be Ideal as Arguments

Author(s): Changkun Ou Permalink: https://golang.design/research/pointer-params We are aware that using pointers for passing parameters can avoid data copy, which will benefit the performance. Nevertheless, there are always some edge cases we might need concern.

Combining DDD, CQRS, and Clean Architecture in Go

In the previous articles, we introduced techniques like DDD Lite, CQRS, and Clean (Hexagonal) Architecture. Even if using them alone is beneficial, they work the best together. Like Power Rangers. Unfortunately, it is not easy to use them together in a real project. In this artic...

Python and Pandas : First Contact with Data

Introduction Every single company I’ve worked at and talked to has the same problem without a single exception so far - poor data quality, especially tracking data. Either there’s incomplete data, missing tracking data, duplicative tracking data. - DJ Patil I spend a...

Creating a Docker image for a Go application

How to properly containerize your Go application with Docker.

Structuring and testing HTTP handlers in Go

How to write your HTTP handlers so they are coherent and easy to test.

Better Debugging Environment for your Micro-Services

Eliminating A Source of Measurement Errors in Benchmarks

Author(s): Changkun Ou Permalink: https://golang.design/research/bench-time About six months ago, I did a presentation1 that talks about how to conduct a reliable benchmark4 in Go. Recently, I submitted an issue #416412 to the Go project, which is also a subtle issue that you mi...

Generics Part 03: Struct Types and Data Semantics

Series Index Generics Part 01: Basic Syntax Generics Part 02: Underlying Types Generics Part 03: Struct Types and Data Semantics Introduction In the previous post, I showed you how to declare a user-defined type, based on an underlying type. I did this through the progression of...

How to use basic CQRS in Go

It’s highly likely you know at least one service that: has one big, unmaintainable model that is hard to understand and change, or where work in parallel on new features is limited, or can’t be scaled optimally. But often, bad things come in threes. It’s not u...

gomponents: declarative view components in Go

Building a library to enable creating server-side views with composable components.