Go

Best practices for Go development including idiomatic patterns, concurrency, and error handling. Use when this capability is needed.

tomevault-io Updated

File contents

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

Converted and distributed by TomeVault — claim your Tome and manage your conversions.

tomevault-io/skills-registry/tree/main/kprsnt2--mylocalcli--go commit 225d1d0d28

Frequently asked questions

npx skillmds@latest add tomevault-io/go-2