O que Team Go Standards faz?
Siga as convenções da equipe ao escrever ou projetar código Go neste repositório. Responda e escreva comentários de código em Chinês. Leia os padrões detalhados em references/ sob demanda, de acordo com o índice abaixo — não leia todos de uma vez, apenas o arquivo relevante para a tarefa atual.
Quando ler qual (índice)
| O que você está fazendo | Leia isto |
|---|---|
| Escrevendo qualquer código Go (base: versões, logging, erros, concorrência, nomenclatura…) | references/rules.md ← leia primeiro por padrão |
Projetando/escrevendo comandos CLI em cmd/** (cobra + gox/cli) | references/cli.md |
Carregamento de configuração (config/**, main.go/config.go, bootstrap/, gox/config) | references/config.md |
Migrações / esquemas de banco de dados (migrations/, dbmigrate/, store.go, *migrate*, *migration*, *schema*, goose) | references/db-migrations.md |
Scaffolding do projeto (Makefile, .gitignore, .editorconfig, .golangci-lint-version, .github/workflows/*.yml) | references/scaffold.md |
Regras principais (prioridade máxima; detalhes em rules.md)
- Go 1.26+; campos JSON/protobuf usam snake_case.
- Logging: inicialize gox/log no ponto de entrada, use log/slog em código de negócio; nunca logue com fmt.
- Config: use gox/config exclusivamente; nunca use viper diretamente ou
os.Getenvpuro em código de negócio. - Todas as chamadas externas devem definir um timeout (10s interno, 30s externo).
- Sem estado global mutável no nível de pacote; envolva erros com um prefixo de pacote.
Estas são orientações suaves durante a sessão; a aplicação final é feita pelo
golangci-lint/ CI / revisão de PR do repositório.