38 Punkte von winterjung 2023-09-15 | 2 Kommentare | Auf WhatsApp teilen
  • Das BankSalad-Team hat Go vier Jahre lang intensiv verwendet und dabei verschiedenste Fehler und Irrwege erlebt, aus denen diese Coding-Konventionen entstanden sind.

Nützliche Lektüre vorab

Verschiedene Konventionsleitfäden und Best-Practice-Materialien, die man mindestens einmal lesen sollte

Coding Practices

  • Don't panic
  • Funktionen, die einen Panic auslösen können, mit dem Prefix must versehen / Panic vs Fatal
  • Panic-sichere Goroutines / Concurrent-sicheres Einsammeln von Ergebnissen
  • Error stacking / Error handling / Error logging
  • No named return
  • HTTP-Client-Konfiguration / Wiederverwendung von HTTP-Verbindungen
  • Beim Deklarieren von Slices len und cap setzen / Nil slice vs Empty slice
  • Bool-Maps und struct{}-Maps / Beim Map-Zugriff ok prüfen / Avoid map loop
  • Beim Iterieren über Strings range verwenden / String-Länge
  • Lieber context.Background() als context.TODO() verwenden
  • Early return aktiv nutzen
  • time.Duration verwenden / Zeitzonen
  • Tabellengetriebene Tests / No monkey patch / Deterministic test
  • Avoid reflect
  • Functional options

Coding-Stil

Die beschriebenen Inhalte sind der Stil des BankSalad-Teams; es wird empfohlen, die einzelnen Punkte nicht einfach unverändert zu übernehmen, sondern sie an die jeweilige Organisation anzupassen.

  • Reihenfolge der Funktionsargumente
  • Benennung von Testfunktionen
  • Reihenfolge von Deklarationen innerhalb einer Datei
  • Import-Reihenfolge
  • Singular ist get, Plural ist list
  • Mehrdeutige Wörter vermeiden
  • Benennung von Konstanten
  • Paketbenennung
  • Projektstruktur

2 Kommentare

 
zxgdot 2023-09-15

:woman_running:

 
secret3056 2023-09-15

Guter Artikel, ich habe ihn mit Interesse gelesen. Ich denke, dass in Korea zwei Unternehmen Go am besten nutzen: BankSalad und AB180.