go-expert

Solid

Go gotchas and decision criteria. Covers error handling patterns, concurrency pitfalls, and interface design.

AI & Automation 24 stars 3 forks Updated today MIT

Install

View on GitHub

Quality Score: 85/100

Stars 20%
47
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
83
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

> **AI-consumed reference.** Optimized for Claude to read during execution. > Human-readable explanation: see [docs/architecture/HIERARCHICAL_PLANNING.md](../../../docs/architecture/HIERARCHICAL_PLANNING.md) > or [docs/getting-started/](../../../docs/getting-started/) depending on topic. # Go Expert — Gotchas & Decisions Use Context7 for Go framework docs. ## Key Decisions ```toon decisions[4]{choice,use_when}: Gin vs Echo vs Fiber,"Gin: most popular/stable. Echo: cleaner API. Fiber: highest perf (Express-like)" Interface location,"Define in CONSUMER package not provider. Accept interfaces return structs" Channel vs Mutex,"Channel for communication between goroutines. Mutex for protecting shared memory" Table-driven vs subtests,"Table-driven for input variations. Subtests (t.Run) for distinct scenarios" ``` ## Gotchas - `err != nil` check EVERY error return — never ignore with `_` - `%w` for wrapping errors (unwrappable), `%v` for formatting only (not unwrappable) - Goroutine leak: always ensure goroutines can exit (context cancellation, done channels) - `defer` evaluates args immediately but executes LIFO — `defer f.Close()` captures current `f` - Range loop variable reuse (pre-Go 1.22): `for _, v := range items { go func() { use(v) }() }` captures same `v`. Fixed in Go 1.22+ - `nil` slice vs empty slice: `var s []int` (nil, marshals to `null`) vs `s := []int{}` (empty, marshals to `[]`) - `context.Background()` for top-level, `context.TODO()` as placeholder. ...

Details

Author
nguyenthienthanh
Repository
nguyenthienthanh/aura-frog
Created
8 months ago
Last Updated
today
Language
JavaScript
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category