プログラムの品質を安定させたい。
安定させるためには、基準が品質の基準を決める必要がある。
品質の基準チェック項目を考えたい。
以下、ykptにコードレビューチェックシートがあったので、これを参考にまとめてみた。
https://yakst.com/ja/posts/1569
一般 | コードは動作するか |
---|---|
想定した役割をはたすか? | |
ロジックは正しいか? | |
すべてのコードは理解しやすいか? | |
同意されているコード規約に従っているか? | |
カッコの位置 | |
関数名 | |
変数名 | |
行の長さ | |
インデックスの数 | |
フォーマット | |
コメント | |
冗長、重複されたコードは含まれてないか? | |
可能なが限りモジュール化されているか | |
置き換え可能なグローバル変数はないか。 | |
コメントアウトされたままのこーどはないか | |
ループ回数は決まっているか?あるいは終了条件は正しいか? | |
ライブラリ関数で置き換え可能なコードはないか。 | |
ロギング、デバッグ用のコードは削除されて | |
セキュリティ | 型 |
長さ | |
ファーマット | |
エンコードが正しいか? | |
サードパーティ製のユーティリティを使っている場合、えされるエラーを拾って | |
出力値はチェックされ、エンコードされているか? | |
不正なパラメータの扱いがかかれているか? | |
ドキュメント | コメントは存在していて、かつコードの意図がきじゅつされているか? |
すべての関数にコメントは付いているか? | |
通常と違う振る舞いや特殊な場合の扱いについて、、触れているか? | |
データ構造や数値の単位は説明されているか? | |
中途半端になっているコードはないか? | |
その場合、その部分は削除されるべるべきか | |
あるいはTO DOのような適切な目印でふらくをたてておくべきか? | |
コードはテスト可能か? | |
オブジェクトが初期化出来なくないか? | |
テストフレームワークがメソッドを使えるか? | |
テストが存在しており、かつ理解できるものか? | |
少なくとも同意されたコードガバレッジを守る程度はあるか? | |
ユニットテストはコードが意図した機能を実現しているよう動作しているかどうかをテストしているか? | |
配列のout of bound (範囲外のアクセス)エラーはチェックされているか? |