書籍「リーダブルコード」 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」とした方がより明確である。

ブール値の名称

命名時に意識すること

  1. 名称から二つの意味を捉えられないようにする
  2. 「is」「has」「can」「should」などを活用する
  3. 肯定形にする(否定形は避ける)
ユーザーの期待に合わせる

ユーザーの持つ先入観から、誤解されないような命名を行なう。

例えば、一般的に「get」や「size」はメンバ値を返すだけの軽量な処理が期待されるため、それを裏切らない処理を記述する。

「自分さえ分かればいい」「ドキュメントにそう書いたから文句を言うな」ではなく、なるべく誤解を招かないような名前を採用することで、事故の発生は抑制できる。

複数の名前を検討する

誤解されるあらゆる可能性を考えて、何パターンも名前を検討して意図をより明確にしていく。