毎度確認漏れがあるため備忘録として
目次
クラス・メソッド
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つの引数を加算した結果を返すメソッドがあるとする
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
/**
* 概要
* @param パラメータ
* @return 戻り値
*/
private int addNum(int a, int b){
return a + b;
}
Python
def result(a:int,b:int) -> int:
"""概要:2つの引数を加算した結果を返す
詳細
パラメータ
"""
return a + b
3. 修飾子は正しいか
自クラスでしか使っていないメソッドにpublic
がついている場合はprivateに直す
4. 早期リターンしているか
処理をしないパターンにマッチした場合、早期に値を返すことで可読性が向上する
Python
テキトーだがこんな感じ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. リテラルは残っていないか
プログラム上の素の文字列や数値をリテラルと呼ぶ
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. 警告・コンパイルエラーは出ていないか
これらが出ているということは、修正すべき箇所があるということ