Convention de codage Go de BankSalad
(blog.banksalad.com)- Convention de codage définie par l’équipe BankSalad au fil de 4 années d’usage intensif de Go, en traversant diverses erreurs et tâtonnements.
Ressources utiles à lire
Divers guides de conventions et documents de bonnes pratiques recommandés à la lecture
- The Zen of Go
- Explication détaillée de chaque maxime : The Zen of Go | Dave Cheney
- Traduction coréenne : La philosophie de Go | marsettler.com
- Go Proverbs
- Effective Go | go.dev
- CodeReviewComments · golang/go Wiki | GitHub
- Practical Go | Dave Cheney
- Guide de style de l’équipe Thanos (coréen, original)
- Guide de style de l’équipe Uber (coréen, original)
- Ashley McNamara + Brian Ketelsen. Go best practices | YouTube
- Idiomatic Go | Sourcegraph
- Go Style Best Practices | Google
Pratiques de codage
- Don't panic
- Ajouter le préfixe must aux fonctions pouvant déclencher un panic / Panic vs Fatal
- Panic-safe goroutine / Collecte de résultats sûre en environnement concurrent
- Error stacking / Error handling / Error logging
- No named return
- Configuration du client HTTP / Réutilisation des connexions HTTP
- Définir
lenetcaplors de la déclaration d’un slice / Nil slice vs Empty slice - Bool map et map de
struct{}/ Vérifieroklors de la lecture d’une map / Avoid map loop - Utiliser
rangepour parcourir une chaîne / Longueur d’une chaîne - Utiliser
context.Background()plutôt quecontext.TODO() - Utiliser largement les retours anticipés
- Utiliser
time.Duration/ Fuseau horaire - Tests orientés table / No monkey patch / Deterministic test
- Avoid reflect
- Functional options
Style de codage
Le contenu décrit correspond au style de l’équipe BankSalad ; il est recommandé de l’adapter à chaque organisation plutôt que de suivre chaque point tel quel.
- Ordre des paramètres des fonctions
- Nommage des fonctions de test
- Ordre des déclarations dans un fichier
- Ordre des imports
getau singulier,listau pluriel- Éviter les termes ambigus
- Nommage des constantes
- Nommage des packages
- Structure du projet
2 commentaires
:woman_running:
Merci pour cet excellent article. Je pense que les deux entreprises qui exploitent le mieux Go en Corée sont Bank Salad et AB180.