概要
完全に個人でも使っているものなので、見苦しいものもあるかもしれませんが、公開します。
他の方にも役立てば幸いです。
チェック項目
変数
- マジックナンバーを使っていないこと→クラス定数などで置換
メソッド
- メソッドが使われるときのことを想定した命名となっていないこと
- 引数で型が決まっている場合は、タイプヒンティングを使っているか
- メンバ変数にアクセスしないことを明示するためにstaticを使っているか
- returnはif文を使ってやる意味があるのか
- 引数がarrayのみである場合はタイプヒンティングを使っているか(現在のNEのバージョンだとobjectかarrayとか)
コメント
- メソッド名で自明なことをコメントで書いていないか
- コメントの日本語に違和感はないか→「頭痛が痛い」のようなコメントはないか
- 作成した処理を変更する際に必要なことがあれば、ナレッジとしてコメントを残しているか
- 突然出てきた値に対してコメントでの補足はあるか(そもそもその値がそれで良いかもチェック)
- コメントにタイポはないか
- メソッドのドキュメント(php: PHPDoc)は書くべき値となっているか
- プロパティのコメントは、phpなら 「/** var {型名} {変数名} */」の形式となっているか
- コメントの書き方は統一されているか
記述場所
- クラスプロパティで管理した方が良いものはないか
記述方法
ソースコード
- 定数名は意味がわかるようにつける
- for文で書いているのにcountを取っているところはないか→foreachに書き換え可能な箇所はないか
- 文字列の連結が複数の場合には、implodeなどの関数でまとめているか
- 返り値がboolのメソッドを使った判定に対してif文でtrue, falseを使っていないか→ブロック文で書けるはず
- 入っているプロジェクトに多い書き方に対して違う書き方をしていないか
- in_arrayなどを使っている場合は、厳密比較となっているか
- 定数で、かつ条件式にも入力されるような値は外だししているか
- ガード節を使った方が綺麗に読みやすくなる箇所はないか
- 再代入している箇所はないか
- 1行が横に長くなり過ぎていないか。(80文字以上であれば、長すぎると言える)
ユニットテスト
- ユニットテストはなるべく単一目的のテストになるように設計されているか
- ユニットテストのメソッド名は命名規則に沿っているか
- エラーの場合のテストはあるか
- Mockのメソッド名が意味もなく、違うメソッド名になっていないか
コードリディング
- 親のクラスがある場合は子クラスで少なくとも子クラスで使っている箇所は適切に使われているか
その他
- 余計なvar_dumpなどデバッグした跡が残っていないか
- インフラで一挙変更をお願いする場合は、例外的な設定がないかを先に調査し、ある場合は一挙変更をそこからのぞいてもらう必要がある旨を伝える。
- ログを出す箇所の権限が変更によって書き変わったりしていないか