Skip to content

コーディング規約

mutotaka0426 edited this page Jul 3, 2021 · 9 revisions

コーディング規約

プルリクエストを出す時レビューをする時は,以下の項目を満たしていることを確認する.

前提

  • コンパイルは通っているか
  • テストは通っているか
  • プルリクエストはチケットと対応しているか(タイトルの先頭が「closed #[チケット番号]」となっているか)

ファイル

  • ファイルにドキュメントコメントを記述しているか(ファイル名,簡潔な説明,作成者を含むこと)
  • ヘッダファイルの各関数に,ドキュメントコメントを記述しているか
  • ヘッダファイル名は,「クラス名.h」になっているか
  • ソースファイル名は,「クラス名.cpp」になっているか
  • ヘッダファイルにインクルードガードを記述しているか(重複しないマクロ名になっているか)
  • ソースファイルは,同クラスのヘッダファイルのみをインクルードしているか

クラス

  • クラス名のスペルは正確か
  • クラス名はアッパーキャメルケースになっているか(例:ClassName)
  • クラス名は名詞になっているか
  • メンバー変数のすべてがコンストラクタで初期化されているか
  • メンバー変数の数は適切か(5個以下が望ましい)
  • メンバ関数の数は適切か(1つのクラスに多くの機能を持たせていないか)
  • publicを上側に,privateを下側に記述しているか
  • publicとprivateのメンバーはそれぞれ,変数→コンストラクタ→関数の順に記述しているか

関数

  • 関数名のスペルは正確か
  • 関数名はローワーキャメルケースになっているか(例:methodName)
  • 関数名は動詞+名詞(名詞は省略可)の形になっているか(例:moveStraight,turn)
  • 関数の行数は適切か(40行以内が望ましい)
  • 構造体およびクラスを引数に取る関数は,参照型で受け取っているか
  • コメントは,適切な箇所に記述されているか(意図が伝わらない処理はないか)
  • ループする時は,10mm秒sleep()を挟んでいるか

変数

  • 変数名のスペルは正確か
  • 変数名は,ローワーキャメルケースになっているか(例:variableName)

定数

  • 定数名のスペルは正確か
  • 定数名は,アッパースネークケースになっているか(例:CONSTANT_NAME)

テスト

  • 各public関数に対応したテストコードはあるか
  • テストコードは適切な数あるか(カバレッジ80%以上が望ましい)
  • テスト関数名は,(テスト対象の関数名)+Testになっているか(例:addTest)