Here are patterns you'll see in Go code:
- Use nil slices as empty defaults. They work with len, append, and range
- Pre-allocate with make when you know the size. This avoids repeated allocations
- Return slices from functions rather than modifying parameters
- Use copy when you need independent data
- Prefer slices over arrays in almost all cases
These patterns lead to clean, efficient code.