¿Qué hace Estándares de Go para Equipos?
Sigue las convenciones del equipo al escribir o diseñar código Go en este repositorio. Responde y escribe comentarios de código en chino. Lee las guías detalladas en references/ bajo demanda según el índice a continuación — no las leas todas a la vez, solo el archivo relevante para la tarea actual.
Cuándo leer qué (índice)
| Lo que estás haciendo | Lee esto |
|---|---|
| Escribir cualquier código Go (base: versiones, logging, errores, concurrencia, nomenclatura…) | references/rules.md ← leer primero por defecto |
Diseñar/escribir comandos CLI bajo cmd/** (cobra + gox/cli) | references/cli.md |
Carga de configuración (config/**, main.go/config.go, bootstrap/, gox/config) | references/config.md |
Migraciones / esquema de base de datos (migrations/, dbmigrate/, store.go, *migrate*, *migration*, *schema*, goose) | references/db-migrations.md |
Andamiaje del proyecto (Makefile, .gitignore, .editorconfig, .golangci-lint-version, .github/workflows/*.yml) | references/scaffold.md |
Reglas principales (prioridad máxima; detalles en rules.md)
- Go 1.26+; los campos JSON/protobuf usan snake_case.
- Logging: inicializa gox/log en el punto de entrada, usa log/slog en el código de negocio; nunca hagas logging con fmt.
- Config: usa gox/config exclusivamente; nunca uses viper directamente ni
os.Getenvsimple en el código de negocio. - Todas las llamadas externas deben establecer un tiempo de espera (10s internas, 30s externas).
- No hay estado global mutable a nivel de paquete; envuelve errores con un prefijo de paquete.
Estas son guías flexibles dentro de la sesión; la aplicación final es el
golangci-lint/ CI / revisión de PR del repositorio.