書籍「リーダブルコード」 3章 まとめ
3章
誤解されない名前
名前が「他の意味と間違われることはないだろうか?」と何度も自問自答する
積極的に「誤解」されそうな部分を探していく。
filter
results = DB.all_objects_filter("a")
このようにメソッド名がfillterだけでは、取り出せる値に「aである」「aでない」の2つの意味で解釈される可能性がある。
aを「選択」するのであればselect()。「除外」するのであればexclude()の方が適切。
限界値は「min」「max」
カートに入る限界値を示す「CART_TOO_BIG_LIMIT」は、限界値(limit)が「未満」と「以下」のどちらか分からない。
限界値「以下」としたいのであれば、「MAX_ITEMS_IN_CART」とした方がより明確である。
ブール値の名称
命名時に意識すること
- 名称から二つの意味を捉えられないようにする
- 「is」「has」「can」「should」などを活用する
- 肯定形にする(否定形は避ける)
ユーザーの期待に合わせる
ユーザーの持つ先入観から、誤解されないような命名を行なう。
例えば、一般的に「get」や「size」はメンバ値を返すだけの軽量な処理が期待されるため、それを裏切らない処理を記述する。
「自分さえ分かればいい」「ドキュメントにそう書いたから文句を言うな」ではなく、なるべく誤解を招かないような名前を採用することで、事故の発生は抑制できる。
複数の名前を検討する
誤解されるあらゆる可能性を考えて、何パターンも名前を検討して意図をより明確にしていく。