命名が大事・名前は正しく付ける
コーディングにおいて、命名、名前を付けるということは非常に重要な意味を持つ。与えられたクラス名やメソッド名、変数名などによって、コード内で抽象化された対象物の役割範囲が決まるので、名前が正しくないと内容が分かりにくくなるだけでなく、単一責務の原則を破り、スパゲティ化したコードになりやすい。
文書を書く時は、「タイトル」や「見出し」がその章や文書全体の説明範囲を示す。「〜〜について」ばかりの見出しになるようであれば、もう少し頭を使って構成を考えた方が良い。
命名する際に注意すべきポイント
- 名前に使用する単語は必ず辞書を引き、正しい意味を確認する
register
の名詞系のつもりでregist
、のような「よくある間違い」は辞書を引いて避ける
- 英単語の品詞・単複に注意する
- クラス名や変数名は、単数の名詞が基本
- メソッド名は動詞が基本。引数が目的語になるイメージ
- 同じモノは同じ単語で記述する
- あるユーザ情報を表現するのに
user
・member
・person
などの類語を混ぜて使わない
- あるユーザ情報を表現するのに
- 命名規則のベストプラクティス、よくある命名を知る
- Boolean な変数名 :
is
・can
・has
など - 「登録」 : 何でもかんでも
register
ではなく、リソースの生成ならcreate
やnew
といった類語を学ぶ
- Boolean な変数名 :
- 上手く名前が付けられない場合は、単一責務の原則が守れているか確認する
- 「入力チェックも DB 接続もやっているメソッド名」は綺麗に作れない
- 名前を付けやすいよう、クラスやメソッドを単一責務で分割する (例 : 「入力チェック作業 →
validate()
」「DB 接続する作業 →update()
」)
変数名に使用してはいけないモノ
info
・data
:userInfo
・userData
など- 何かしらの情報だし、何かしらのデータであることは分かっている。どんな情報・データなのか説明するべき
userData
とはせず単純にuser
とするか、currentUser
・loginUser
など、対象を絞り込むような言葉を付ける
- 連番 :
user1
・user2
など1
・2
という数値には意味がないことが多い。順序を示したいワケでもない。マジックナンバーの一種- そうではなく、何故それらを区別しておきたいのかを考える
- 例えば「編集前のデータ」と「画面で編集したデータ」といった違いがあるのであれば、
originalUser
とafterUser
だとかいう風に付けた方が分かりやすい
work
:workUser
など- 「ワーク変数」という考え方をそのまま変数名に当てるのは危険。大抵はワーク変数のライフサイクルが長くなり、繰り返し代入する作りになっていて、途中経過が追いづらい
- データを加工する一連の処理をメソッドに切り出し、変更ごとに別の変数 (定数) として宣言した方が良い