go

SKILL.md

Go Best Practices

Code Style

  • Use gofmt for formatting
  • Follow Effective Go guidelines
  • Use short variable names in small scopes
  • PascalCase for exported, camelCase for unexported

Error Handling

  • Always check errors
  • Return errors, don't panic
  • Wrap errors with context: fmt.Errorf("context: %w", err)
  • Use errors.Is/As for error checking
  • Define sentinel errors with errors.New

Concurrency

  • Don't communicate by sharing memory
  • Share memory by communicating (channels)
  • Use context for cancellation
  • sync.WaitGroup for goroutine coordination
  • Use select for multiple channel operations

Patterns

  • Accept interfaces, return structs
  • Make zero values useful
  • Use embedding for composition
  • Table-driven tests

Performance

  • Use sync.Pool for object reuse
  • Profile with pprof
  • Use buffered channels when appropriate
  • Avoid premature optimization
Weekly Installs
2
First Seen
14 days ago
Installed on
opencode2
gemini-cli2
codebuddy2
github-copilot2
codex2
kimi-cli2