What problem does it solve?
Go engineering best practices and idioms to ensure code is explicit, boring, concrete, testable, and maintainable across Go projects.
Core Features & Use Cases
- Standard library-first: prefer stdlib and only introduce dependencies when they meaningfully improve correctness or productivity.
- Formatting & style: enforce gofmt by default; clear code layout; gofumpt optional for stricter formatting.
- Testing & verification: use go test as the default test runner; encourage table-driven tests; race detection with -race.
- Boundary validation: use context.Context for cancellation; explicit input validation at boundaries; small interfaces and boundary-scoped dependencies.
- Error handling & observability: wrap errors with context using %w, use errors.Is / errors.As; structured logging with slog where meaningful.
- Concurrency discipline: lifecycle-managed goroutines, use errgroup / WaitGroup; bounded concurrency when appropriate.
- Maintenance & review: emphasize small APIs, explicit contracts, and documented review standards.
Quick Start
Audit your Go project against these guidelines and immediately align formatting, error handling, and concurrency practices.