参考: Go Wiki: Go Code Review Comments#
- ## Gofmt ✅ 2024-03-07
- goimports ✅ 2024-03-07
- ## コメント文 ✅ 2024-03-07
- ## コンテキスト
- ## コピー ✅ 2024-03-07
- ## Crypto Rand ✅ 2024-03-07
- キーを生成するために
crypto/rand
を使用する - 16 進数または Base64 で出力する
- キーを生成するために
- ## 空のスライスの宣言 ✅ 2024-03-07
var t []string
nil の場合、JSON エンコードはnull
になるt:=[]string{}
非 nil の長さ 0 の場合、JSON エンコードは[]
になる
- ## ドキュメントコメント ✅ 2024-03-07
- トップレベル、エクスポートされた名前
- 非自明な非エクスポート型または関数の宣言
- https://go.dev/doc/effective_go#commentary
- ## パニックしないでください
- https://go.dev/doc/effective_go#errors. ✅ 2024-03-07
- https://go.dev/doc/effective_go#recover. ✅ 2024-03-07
- パッケージ内でのリカバリ
- ## エラー文字列 ✅ 2024-03-07
- ロギング以外では大文字にしない
- ## 例 ✅ 2024-03-07
- ## ゴルーチンの寿命 ✅ 2024-03-07
- 終了するタイミングを明確にする
- 明白な場合はシンプルに保つか、ドキュメント化する
- ## エラーの処理 ✅ 2024-03-07
- https://go.dev/doc/effective_go#errors ✅ 2024-03-07
- ## インポート ✅ 2024-03-07
- 名前の変更を避ける
- 最もローカルまたはプロジェクト固有のインポートを名前変更する
- グループで整理する
- goimports ✅ 2024-03-07
- ## 空のインポート ✅ 2024-03-07
- main または test のみで使用する
- ## ドットインポート ✅ 2024-03-07
- テスト時の循環依存関係の解決に使用する
- 他の場所では使用しない
- ## インバンドエラー ✅ 2024-03-07
- インバンドエラーよりも追加の有効な値を優先する
- ## インデントエラーフロー ✅ 2024-03-07
- 通常のコードの最小インデント
- ## イニシャリズム ✅ 2024-03-07
- 一貫したケースでイニシャリズムを使用する
- ## インターフェース
- ## 行の長さ
- ## 大文字と小文字の混在 ✅ 2024-03-07
- https://go.dev/doc/effective_go#mixed-caps
- イニシャリズム ✅ 2024-03-07
- ## 名前付き戻り値パラメータ ✅ 2024-03-07
- 宣言を避けるためだけに結果のパラメータに名前を付けない
- ## ネイキッドリターン ✅ 2024-03-07
- 名前付き戻り値パラメータ ✅ 2024-03-07
- ## パッケージコメント ✅ 2024-03-07
- ## パッケージ名 ✅ 2024-03-07
- ## 値の渡し ✅ 2024-03-07
- 数バイトを節約するためだけにポインタを渡さない
- ## レシーバ名 ✅ 2024-03-07
- 短くて一貫性のある名前
- ## レシーバの型 ✅ 2024-03-07
- 最後に、迷った場合はポインタレシーバを使用する
- ## 同期的な関数 ✅ 2024-03-07
- 非同期的な関数よりも同期的な関数を優先する
- ## 有用なテストの失敗
if got !=tt.wang{t.Errorf("Foo(%q) = %d; want %d", tt.in, got, tt.want) // or Fatalf, if test can't test anything more past this point
}- テーブル駆動テスト.
- ## 変数名 ✅ 2024-03-07
- 長いよりも短い
- 基本的なルール:名前が宣言から遠くで使用されるほど、名前はより具体的である必要がある
- Google Go スタイルガイド.