2
1
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

コードレビュー依頼前チェックシート

Posted at

毎度確認漏れがあるため備忘録として

目次

クラス・メソッド

1. 名前は適切か
2. DocStringが記述してあるか
3. 修飾子は正しいか
4. 早期リターンしているか
5. デバッグ用のコードは残っていないか
6. リテラルは残っていないか
7. 機能を分割できないか

変数

1. 名前は適切か
2. 型は適切か

コメント

1. 意味のないコメントはないか
2. TODOコメントは残っていないか

その他

1. インデントは揃っているか
2. 警告・コンパイルエラーは出ていないか

クラス・メソッド

1. 名前は適切か

1-1.言語の命名規則に則しているか
  • JavaとPythonをよく使うのでこの2つのみ
Java: キャメルケース
分類 1文字目 2つ目以降の単語の頭文字
クラス・インターフェース 大文字 大文字 HogeClass
メソッド 小文字 大文字 hogeFunc
Python: スネークケースとキャメルケース
分類 1文字目 2つ目以降の単語の頭文字
クラス・例外・型変数 大文字 大文字 HogeClass
メソッド 小文字 小文字+アンダースコア hoge_func
1-2.役割が名前から読み取ることができるか

例えば2つの引数を加算した結果を返すメソッドがあるとする

add.py
def result(a:int,b:int) -> int:
    return a + b
#名前以外同じ
def add_num(a:int,b:int) -> int:
    return a + b

resultは名前だけだと何をするのかわからない
機能がわかる名前をつけることで可読性が向上する

2. DocStringが記述してあるか

機能を表すDocStringは全てのクラス・メソッドに記述する

Java
docString.java
/**
* 概要
* @param   パラメータ
* @return 戻り値
*/
private int addNum(int a, int b){
    return a + b;
}
Python
docString.py
def result(a:int,b:int) -> int:
    """概要:2つの引数を加算した結果を返す
    詳細
    パラメータ
    """
    return a + b

3. 修飾子は正しいか

自クラスでしか使っていないメソッドにpublicがついている場合はprivateに直す

4. 早期リターンしているか

処理をしないパターンにマッチした場合、早期に値を返すことで可読性が向上する

Python テキトーだがこんな感じ
add_diff_num.py
def add_diff_num(a:int,b:int) -> int:
    """aとbが異なる場合に加算する
    """
    if a == b:return a
    
    return a + b

5. デバッグ用のコードは残っていないか

Pythonならprint、JavaならSystem.out.printlnなど本処理には関係ない値を確認するコードがあれば削除する

6. リテラルは残っていないか

プログラム上の素の文字列や数値をリテラルと呼ぶ
sample.py
a = 1
str = 'リテラル'
リテラルが残っていると変更が生じた際に膨大なコードからそれらを見つけ出さなければならない。 生産性低下の要因になるため、定数化を試みる

7. 機能を分割できないか

1つのメソッドで複数の処理を行っているなら、切り分けた方が良い。

  • モジュールの結合度が下がり、再利用性が向上する。
  • 機能が明確になり命名しやすくなる

変数

1. 名前は適切か
1-1.言語の命名規則に則しているか
Java: 基本的にキャメルケース 定数のみスネークケースかつ全て大文字
分類 1文字目 2つ目以降の単語の頭文字
変数 小文字 大文字 hogeHoge
定数 大文字 大文字+アンダースコア HOGE_CONST
Python: スネークケース
分類 1文字目 2つ目以降の単語の頭文字
変数 小文字 小文字+アンダースコア hoge_hoge
定数 大文字 大文字+アンダースコア HOGE_CONST
1-2.役割が名前から読み取ることができるか

変数が格納しているデータが変数名から読み取ることができればよい
また、生存時間が非常に狭い(2,3行だけしか使わない)場合は、短い名前をつけても問題ない

2. 型は適切か

1つの値やインスタンスしか返していないのにリストで受け取るなどの処理をしていないか

コメント

1. 意味のないコメントはないか
  • コードを読めば理解できるものをわざわざ書いていないか
  • 現在使用していないコードをコメントアウトして残していないか
  • もしあれば消す
2. TODOコメントは残っていないか

TODOコメントはIDEの機能で残っているか確認できる

  • eclipse:ウィンドウ→ビューの表示→タスク
  • VScode:拡張機能「TODO Tree」を使用する

その他

1. インデントは揃っているか

見た目は可読性に関わるため揃えた方がよい

2. 警告・コンパイルエラーは出ていないか

これらが出ているということは、修正すべき箇所があるということ

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1