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.

Surprises and Gotchas When Working With JSON

This is a list of things about Go's encoding/json package which, over the years, have either confused or surprised me when I first encountered them. Many of these things are mentioned in the official package documentation if you read it carefully enough, so in theory they should...

GopherCon 2020 Agenda

#GoVirCon Schedule Announced We’re really excited to announce the schedule for our virtual presentation of GopherCon 2020! Our official programming starts on Monday, November 9th and Tuesday, November 10th with our trademark pre-conference workshops.

Authentication for REST APIs in Go

How to add authentication and authorization to your REST API in Go.