Que fait Normes Go d'équipe ?
Respectez les conventions d'équipe lors de l'écriture ou de la conception de code Go dans ce dépôt. Répondez et rédigez les commentaires de code en français. Lisez les normes détaillées dans references/ à la demande selon l'index ci-dessous — ne lisez pas tous les fichiers d'un coup, seulement le fichier pertinent pour la tâche en cours.
Quand lire quoi (index)
| Ce que vous faites | Lisez ce fichier |
|---|---|
| Écrire du code Go (base : versions, journalisation, erreurs, concurrence, nommage…) | references/rules.md ← à lire par défaut en premier |
Concevoir/écrire des commandes CLI sous cmd/** (cobra + gox/cli) | references/cli.md |
Chargement de configuration (config/**, main.go/config.go, bootstrap/, gox/config) | references/config.md |
Migrations / schéma de base de données (migrations/, dbmigrate/, store.go, *migrate*, *migration*, *schema*, goose) | references/db-migrations.md |
Échafaudage de projet (Makefile, .gitignore, .editorconfig, .golangci-lint-version, .github/workflows/*.yml) | references/scaffold.md |
Règles fondamentales (priorité maximale ; détails dans rules.md)
- Go 1.26+ ; les champs JSON/protobuf utilisent snake_case.
- Journalisation : initialisez gox/log au point d'entrée, utilisez log/slog dans le code métier ; ne journalisez jamais avec fmt.
- Configuration : utilisez gox/config exclusivement ; n'utilisez jamais viper directement ni
os.Getenvnu dans le code métier. - Tous les appels externes doivent définir un timeout (interne 10s, externe 30s).
- Pas d'état global mutable au niveau du paquet ; encadrez les erreurs avec un préfixe de paquet.
Ce sont des directives souples en session ; l'application finale est assurée par le
golangci-lint/ CI / revue de code du dépôt.