Convenções de codificação Go da BankSalad
(blog.banksalad.com)- A equipe da BankSalad definiu estas convenções de codificação ao longo de 4 anos usando Go ativamente, passando por diversos erros e tentativas e erros
Materiais que vale a pena ler
Vários guias de convenções e materiais de boas práticas que recomendamos ler ao menos uma vez
- The Zen of Go
- Explicação detalhada de cada trecho: The Zen of Go | Dave Cheney
- Tradução em coreano: A Filosofia do Go | marsettler.com
- Go Proverbs
- Effective Go | go.dev
- CodeReviewComments · golang/go Wiki | GitHub
- Practical Go | Dave Cheney
- Guia de estilo da equipe do Thanos (coreano, original)
- Guia de estilo da equipe da Uber (coreano, original)
- Ashley McNamara + Brian Ketelsen. Go best practices | YouTube
- Idiomatic Go | Sourcegraph
- Go Style Best Practices | Google
Práticas de codificação
- Don't panic
- Adicionar o prefixo must em funções que podem gerar panic / Panic vs Fatal
- Goroutine segura contra panic / Coletar resultados de forma concurrent safe
- Error stacking / Error handling / Error logging
- No named return
- Configuração de HTTP client / Reutilização de conexões HTTP
- Ao declarar slices, definir len e cap / Nil slice vs Empty slice
- Bool map e map de struct{} / Verificar ok ao consultar map / Avoid map loop
- Usar range ao iterar strings / Comprimento de string
- Usar
context.Background()em vez decontext.TODO() - Usar bastante early return
- Usar
time.Duration/ Fuso horário - Testes baseados em tabela / No monkey patch / Deterministic test
- Avoid reflect
- Functional options
Estilo de codificação
O conteúdo descrito reflete o estilo da equipe da BankSalad, e recomendamos que cada item seja considerado de acordo com a realidade de cada organização, em vez de segui-lo literalmente
- Ordem dos argumentos de função
- Nomenclatura de funções de teste
- Ordem das declarações no arquivo
- Ordem dos imports
- No singular, get; no plural, list
- Evitar palavras ambíguas
- Nomenclatura de const
- Nomenclatura de pacotes
- Estrutura do projeto
2 comentários
:woman_running:
Gostei muito do texto. Acho que, no país, as duas empresas que melhor utilizam Go são a Bank Salad e a AB180.