11 parts · 16 chapters
Go, with Gin
Go is a small language designed at Google for large teams and network services: fast compilation, a single static binary, goroutines and channels built in, and deliberately few features. Measured on this machine, a goroutine starts in 743 ns with about 2 KB of stack.
Eleven parts, the same outline as every language course: basics; the type system; memory and the runtime; concurrency; idioms; tooling and testing; Gin end to end; net/http and Gin internals; performance and profiling; what Go is paired with in production; and the ledger API capstone.
the languagePackages, types, structs, interfaces, errors, generics.
the runtimeGoroutines, the G-M-P scheduler, the GC, escape analysis.
concurrencyChannels, select, context, errgroup, sync.
GinRouting, middleware, binding, validation, and what is underneath.
performancepprof, benchmarks, allocations, GOGC and GOMEMLIMIT.
productionOne binary in a small container, gRPC, Envoy, Prometheus, NATS or Kafka.
00
Basics
Modules, packages and a first program · Slices, maps, structs and zero values
2 ch · ~12 min01The Type System
Interfaces, methods and embedding · Errors as values
2 ch · ~12 min02Memory and the Runtime
Goroutines and the scheduler · Escape analysis and the GC
2 ch · ~12 min03Concurrency
Channels, select and context · The race detector and goroutine leaks
2 ch · ~12 min04Idioms
Writing Go like Go
1 ch · ~8 min05Tooling and Testing
Built-in tools
1 ch · ~8 min06Gin End to End
A Gin service · Data access: pgx and sqlc
2 ch · ~12 min07net/http and Gin Internals
Under the framework
1 ch · ~8 min08Performance and Profiling
Profiles and allocations
1 ch · ~8 min09In Production: What Go Is Paired With
The stack around a Go service
1 ch · ~8 min10Capstone: The Ledger API in Go
The build
1 ch · ~8 minLanguage courses share one shapeEvery language course (Python, Go, Rust, Rails, Java and the optional three) has the same eleven parts and the same capstone, so they can be compared. Concurrency (course 35) and the Production Stack (course 9) are the companions.