コードレビュー観点


※どんどん書き足す予定

コーディング規約をよく確認し守ること

まず最低限これ!

  • これが守られていないと、他の開発者はもちろん自分でも処理の流れを把握しづらくなる

命名ルール(一例だけ)

対象 ルール 備考
変数名 先頭小文字で 初学者はよく大文字にしたりするので気を付けること
定数名 全部大文字、単語は"_"区切り 初学者はよく変数名と同じ命名をするので注意

命名(変数とメソッド)

  • 変数は"名詞"の名前をつけること
  • メソッドは"動詞"の名前をつけること

変数名やは用途がわかりやすいように命名すること

  • 一文字だけの変数名は極力使わない
    • ループ処理のiなど定番のものはOK
  • 略称は使ってもいいけど、ぱっと見わからないものは非推奨

定数はカテゴリや項目や区分がわかるようにする

# これだとどの項目で使えるのかわからない
JAPAN = 'JA'
KOREA = 'KR'

TODO = '1'
DOING = '2'
DONE = '3'

# 冗長にはなるが前に項目名やカテゴリ名をつけることで利用用途が明確になる
COUNTRY_CODE_JAPAN = 'JA'
COUNTRY_CODE_KOREA = 'KR'

TASK_STATUS_TODO = '1'
TASK_STATUS_DOING = '2'
TASK_STATUS_DONE = '3'

# enumを使うのもあり
class Country(Enum):
    JAPAN = 'JA'
    KOREA = 'KR'
    USA = 'US'
class TaskStatus(Enum):
    TODO = '1'
    DOING = '2'
    DONE = '3'

ネストが深くなりすぎないようにする

3階層まではOK 4階層以上はNG

  • 人が瞬間的に記憶できる数は4±1(電話番号も4桁区切り)
  • 4階層以上になるとぱっと見複雑と感じてしまう
  • その場合もループは2階層までとする。ループが3階層だと複雑
これぐらいならOK
for ...
  for ...
    if ...

DRY(Don’t Repeat Your Self)原則

  • 同じコードはなるべく避ける
  • ただし、コードの再利用のために複雑になってはいけない
    • いろんなところで使えるようにif文だらけにならないように注意