| name | go-practices |
| description | Go service conventions: hexagonal architecture, snake_case files, error wrapping with fmt.Errorf, table-driven tests, and OpenTelemetry. Use when writing .go files or creating 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.