38 ポイント 投稿者 winterjung 2023-09-15 | 2件のコメント | WhatsAppで共有
  • バンクサラダチームが4年間にわたり Go を活発に利用し、さまざまなミスや試行錯誤を経て定めてきたコーディング規約

読んでおくとよい資料

一度読んでみることを勧める、各種規約ガイドや best practices 資料

コーディングプラクティス

  • Don't panic
  • Panic を起こしうる関数には must プレフィックスを付ける / Panic vs Fatal
  • Panic safe な goroutine / Concurrent safe に結果を集める
  • Error stacking / Error handling / Error logging
  • No named return
  • HTTP client の設定 / HTTP connection の再利用
  • Slice 宣言時の len, cap 設定 / Nil slice vs Empty slice
  • Bool map と struct{} map / Map 参照時の ok チェック / Avoid map loop
  • 文字列の loop では range を使用 / 文字列の長さ
  • context.TODO() より context.Background() を使用
  • Early return を多用
  • time.Duration を使用 / タイムゾーン
  • テーブル駆動テスト / No monkey patch / Deterministic test
  • Avoid reflect
  • Functional options

コーディングスタイル

記載された内容はバンクサラダチームのスタイルであり、各項目はそのまま従うというよりも、各組織に合わせて検討することを勧める

  • 関数の引数順
  • テスト関数の命名
  • ファイル内の宣言順
  • import 順
  • 単数は get、複数は list
  • 曖昧な単語を避ける
  • const の命名
  • パッケージ命名
  • プロジェクト構造

2件のコメント

 
zxgdot 2023-09-15

:woman_running:

 
secret3056 2023-09-15

良い文章を興味深く読みました。国内でGoを最も上手く活用している2社は、バンセルとAB180だと思います。