Convención de código Go de Banksalad
(blog.banksalad.com)- El equipo de Banksalad ha usado Go activamente durante 4 años y fue definiendo esta convención de código mientras pasaba por diversos errores y pruebas y errores.
Materiales recomendados para leer
Varios documentos de guías de convención y best practices que recomiendan leer al menos una vez.
- The Zen of Go
- Explicación detallada de cada pasaje: The Zen of Go | Dave Cheney
- Traducción al coreano: La filosofía de Go | marsettler.com
- Go Proverbs
- Effective Go | go.dev
- CodeReviewComments · golang/go Wiki | GitHub
- Practical Go | Dave Cheney
- Guía de estilo del equipo de Thanos (coreano, original)
- Guía de estilo del equipo de Uber (coreano, original)
- Ashley McNamara + Brian Ketelsen. Go best practices | YouTube
- Idiomatic Go | Sourcegraph
- Go Style Best Practices | Google
Prácticas de código
- Don't panic
- A las funciones que pueden hacer panic, ponerles prefijo
must/ Panic vs Fatal - Panic safe goroutine / Recolectar resultados de forma concurrent safe
- Error stacking / Error handling / Error logging
- No named return
- Configuración de HTTP client / Reutilización de conexiones HTTP
- Al declarar slices, configurar
lenycap/ Nil slice vs Empty slice - Bool map y
struct{}map / Verificarokal consultar un map / Avoid map loop - Usar
rangeal iterar strings / Longitud de strings - Usar
context.Background()en lugar decontext.TODO() - Usar mucho early return
- Usar
time.Duration/ Zona horaria - Table-driven tests / No monkey patch / Deterministic test
- Avoid reflect
- Functional options
Estilo de código
El contenido descrito corresponde al estilo del equipo de Banksalad, y recomiendan considerar cada punto según la realidad de cada organización en vez de seguirlo tal cual.
- Orden de los argumentos de las funciones
- Naming de funciones de test
- Orden de declaraciones dentro del archivo
- Orden de imports
- Para singular usar get, para plural usar list
- Evitar palabras ambiguas
- Naming de constantes
- Naming de paquetes
- Estructura del proyecto
2 comentarios
:woman_running:
Buen texto, lo leí con gusto. Creo que las dos empresas que mejor aprovechan Go en Corea son BankSalad y AB180.