Go Development Patterns
When to Use
- •Building Go services or CLI applications
- •Implementing job scheduling or task orchestration
- •Integrating with Docker API
- •Building LDAP/Active Directory clients
- •Designing resilient systems with retry logic
- •Setting up comprehensive test suites
Required Workflow
For comprehensive reviews, ALWAYS invoke these related skills:
- •Security audit - Invoke
/netresearch-skills-bundle:security-auditfor OWASP analysis, vulnerability assessment, and security patterns - •Enterprise readiness - Invoke
/netresearch-skills-bundle:enterprise-readinessfor OpenSSF Scorecard, SLSA compliance, supply chain security - •GitHub project setup - Invoke
/netresearch-skills-bundle:github-projectfor branch protection, rulesets, CI workflow validation
A Go development review is NOT complete until all related skills have been executed.
Core Principles
Type Safety
- •Avoid:
interface{},sync.Map, scattered type assertions, reflection - •Prefer: Generics
[T any], concrete types, compile-time verification
Consistency
- •One pattern per problem domain
- •Match existing codebase patterns
- •Refactor holistically or not at all
Conventions
- •Errors: lowercase, no punctuation (
errors.New("invalid input")) - •Naming: ID, URL, HTTP (not Id, Url, Http)
- •Error wrapping:
fmt.Errorf("failed to process: %w", err)
References
Load these as needed for detailed patterns and examples:
| Reference | Purpose |
|---|---|
references/architecture.md | Package structure, config management, middleware chains |
references/resilience.md | Retry logic, graceful shutdown, context propagation |
references/docker.md | Docker client patterns, buffer pooling |
references/ldap.md | LDAP/Active Directory integration |
references/testing.md | Test strategies, build tags, table-driven tests |
references/linting.md | golangci-lint v2, staticcheck, code quality |
references/api-design.md | Bitmask options, functional options, builders |
references/fuzz-testing.md | Go fuzzing patterns, security seeds |
references/mutation-testing.md | Gremlins configuration, test quality measurement |
references/makefile.md | Standard Makefile interface for CI/CD |
Quality Gates
Run these checks before completing any review:
bash
golangci-lint run --timeout 5m # Linting go vet ./... # Static analysis staticcheck ./... # Additional checks govulncheck ./... # Vulnerability scan go test -race ./... # Race detection
Contributing: Submit improvements to https://github.com/netresearch/go-development-skill