コドレビューの観点
コドレビューの観点をまとめてみました。チェックリスト的なものになりますた。
機能性
- コードが設計通りの機能を有するか?
- データの流れ、取得方法は、設計と一致するか?
- データのチェックの漏れはないか?
- データの生成、修正、加工は、設計と矛盾がないか?
- ループの中で更にSQLなど重い処理を発行するなど、パフォーマンスの懸念はないか?
- 必要な場合、国際化の対応しているか?
- コネクションやリソースは適切な方法で閉じられているか?
- NULLとなる場合や値が取れない場合を考慮しているか?
- NULLをある程度許容したコードになっているか?
読みやすさ
- 名前の付け方は、共通認識の範囲か?
- スタイルガイドにそっているか?
- ループ、分岐等の処理記述方法は同じか?
コード設計
- パラメータ、プロパティなど正しく機能区別されて実装されているか?
- インスタンス等の上書き、重複など考慮されているか?
- 類似コードの共通化を行っているか?
- 複雑なコードを書いていないか?
- 更に、シンプルに記述できる方法はないか?
- メソッド等で機能が適度に分解されているか?(作成、編集、出力、入力、変換、検証、受領)
- 大きい処理は小さい処理メソッドの組み合わせで表現されているか?
- 外部ライブラリの影響範囲、依存関係は限定的か?
運用保守
- ログは適切に出力されているか?
- 脆弱性となるコードを記述していないか?
- 定数記述すべきところをベタ書きしていないか?
- デッドロックなどの並行実行時の考慮はされているか?
- 権限外のデータにアクセスできる可能性はないか?
- 個人情報などの機密性のある情報を安易に外部に送信していないか?
テスト
- テスト項目は機能に対して正しくテストしてあるか?
- テスト項目の網羅性に抜けがないか?
- テストの確認方法に問題はないか?
- 投入データ、生成方法には問題ないか?
- 結果は設計と比べて整合性は取れているか?
- テストの実行時間に問題はないか?
- テストできない、テストしないことが、明確になっているか?
- テスト項目の実施目的が決められた範囲でドキュメント化され、間違えがないか?
例外
- プロジェクで定められた記述方法に従って、例外を処理している。
- 起きる可能性が例外処理の抜けがないか?
ドキュメント
- コードのコメントは適度に書かれているか?
- コードのコメントに間違えはないか?
- コードドキュメントとして問題ないか?
参照