02章『名前に情報を詰め込む』
名前は短いコメント
短くても良い名前をつければ、多くの情報を伝えることができる
・明確な単語を選ぶ
・汎用的な名前を避ける(あるいは、使う状況を選ぶ)
・抽象的な名前よりも具体的な名前を使う
・接尾辞や接頭辞を使って情報を追加する
・名前の長さを決める
・名前のフォーマットで情報を伝える
2.1 明確な単語を選ぶ
「空虚な」単語は避ける
「get」「size」「stop」などは、
より明確な単語
「download」「height」「kill」などに置き換える
ただしやりすぎはダメ
気取った言い回しよりも、明確で正確な方が良い
2.2 tmpやretvalなどの汎用的な名前を避ける
良い名前=変数の値や目的を表した名前
→変数の目的を事前に伝えることができる
バグの発見にも役立つ
汎用的な名前が効果的な場合もある
tmpという名前は、生存期間が短くて、一時的な保管が主目的の変数にだけ使う
ループイテレータが複数あるときは、インデックスに明確な名前をつけると分かりやすい
2.3 抽象的な名前よりも具体的な名前を使う
メソッドの動作をそのまま現すような、具体的な命名を意識する
2.4 名前に情報を追加する
「単語」を変数名に追加する
id→hex_id
「単位」を変数名に追加する
size→size_mb
「属性」を変数名に追加する
comment→unscaped_comment
変数の意味を理解してもらわなければ困るところにだけ使う
2.5 名前の長さを決める
適切な長さは変数の使い方によって決まる
スコープが小さければ短い名前でも良い(必要な情報がすぐそばにあるため)
スコープが大きければ、名前に十分な情報を詰め込んで明確にする必要がある
長い名前は「単語補完」機能を使えば問題にならない
省略形を使う場合は「新しいチームメイトが意味を理解できるか」を基準にする
不要な単語は捨てる
ConvertToString → ToString
2.6 名前のフォーマットで情報を伝える
クラス名 CamelCase
変数名 lower_separated
メンバ変数 offset_
定数 kConstantName
など
担当:やし