498a3e9b2791cac0130f092781123990645c3de3
Key patterns: - Effect buffer (transactional side effects with rollback) - Soft assertions (log invariant violations, don't crash) - Type-safe state transitions (HSM with source validation) - Mutable vs immutable context (type-level access control) - Goroutine Handle (safe lifecycle, predates CockroachDB by 3.5y) - Dynamic config with generics (566 settings, namespace-scoped) - Composable predicates (filter algebra with flattening) - Persistence plugin registration (init pattern) - ShutdownOnce (CAS-based safe channel close)
Go Patterns
Idiomatic Go patterns extracted from the Go standard library source code with verified file:line citations.
Structure
patterns/— Go stdlib patterns (interfaces, errors, concurrency, structs, testing, docs, style, API conventions, packages)smells/— Anti-patterns and common Go mistakeschangelog/— Daily digest of merged Go PRs
Philosophy
These rules are derived from what the Go standard library actually does, not opinions or blog posts. Every pattern cites specific files and line numbers.
When unsure how to do something in Go, look at how the standard library does it.
Languages
Markdown
100%