38 points par winterjung 2023-09-15 | 2 commentaires | Partager sur WhatsApp
  • 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

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 len et cap lors de la déclaration d’un slice / Nil slice vs Empty slice
  • Bool map et map de struct{} / Vérifier ok lors de la lecture d’une map / Avoid map loop
  • Utiliser range pour parcourir une chaîne / Longueur d’une chaîne
  • Utiliser context.Background() plutôt que context.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
  • get au singulier, list au pluriel
  • Éviter les termes ambigus
  • Nommage des constantes
  • Nommage des packages
  • Structure du projet

2 commentaires

 
zxgdot 2023-09-15

:woman_running:

 
secret3056 2023-09-15

Merci pour cet excellent article. Je pense que les deux entreprises qui exploitent le mieux Go en Corée sont Bank Salad et AB180.