go-backend
Installation
SKILL.md
Go Backend Development
Go is small on purpose. The language has fewer features than its peers, and that's the point: less surface area, more uniformity, code that an unfamiliar reader can pick up quickly. Working with Go's grain — not against it, not pretending it's Java or Rust — is the difference between a maintainable service and a fight.
The orienting principles, repeated by long-time Go developers until they sound trite (because they're true):
- Clear is better than clever.
- Errors are values. Handle them.
- Don't communicate by sharing memory; share memory by communicating. (And actually, when in doubt, just use a mutex — channels aren't always the answer.)
- A little copying is better than a little dependency.
- Accept interfaces, return concrete types.
Project layout
For a typical service, this works: