読書会でまとめたものになります

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
など
 
担当:やし