| name | go-practices |
| description | Go conventions for hexagonal architecture, project structure, error handling, testing, and observability. Use when writing Go services. |
go-practices
Quick Start
- Follow hexagonal architecture: business logic in
pkg/api/business/,
adapters in pkg/api/adapters/
- Use snake_case for all Go files
- Wrap errors:
fmt.Errorf("%w: %w", ErrSentinelError, err)
- Run tests with race detection:
go test -race ./...
Key Principles
- Business logic has NO external dependencies
- All external interactions through interfaces
- Composition via AppContext (composition root)
- Table-driven tests with
t.Parallel()
- OpenTelemetry for observability
References
See rules.md for complete conventions.