#2.1明確な単語を選ぶ
動作に合わせて、より明確な単語を使用する。
例)
get() → DownloadPage(),FetchPage()
stop() → Kill(), Pause()
#2.2汎用的な名前を避ける
良い変数名は、変数の目的や値を表す。
ただし、生存期間が短く、一時保管的な役割の変数には、汎用的な名前を意図的につける場合もある。
ループイテレータに対しても、複数ある場合には明確な名前をつけ判別しやすくすることで、バグを減らせる。
#2.3具体的な名前を使い、物事を詳細に説明する
メソッドであれば、そのメソッドの機能、動作を明確に表現できる名前を定義する。
直行する概念に対しては、まとめようとはせず、それぞれ別の名前をつける。
#2.4変数名に大切な情報を追加する
1.時間、バイト数などの計測できるものは、変数名に単位を追加する。
例)
delay → delay_secs
size → seize_mb
limit → max_kbps
angle → degrees_cw
2.基本的には、変数の意味を理解してほしいところには属性を追加する。
3.特に、変数の意味を誤って解釈しバグになりそうなところで追加する。
例)
password → plaintext_password
comment → unescaped_comment
#2.5スコープの大きな変数には長い名前をつける
識別子のスコープが大きければ、名前に十分な情報を詰め込んで明確にする必要がある
スコープが小さければ短い名前でもいい
必要な情報が近くにあるため。
長い名前を入力するのは問題ではない
エディタの補完機能を使用すれば、正確に素早く利用できる。
頭文字と省略形
チームで共有できる場合に、単語を省略する。
ただし、プロジェクト固有の省略形は使用しない。新しく入るメンバーが読めたいため。
#2.6大文字やアンダースコアなどに意味を含める
名前のフォーマットで情報を伝える
クラス名はCamelCase(キャメルケース)
変数名はlower_separeted(小文字をアンダースコアで区切ったもの)
規約を定めておけば、メンバー変数とローカル変数を明確に区別できる
例)
stats.clear()
"_"がないため、ローカル変数であるとわかる
#まとめ
「名前に情報を詰め込む」ことで、情報を読み取れるようにする。