リーダブルコードを読む part3
こんにちはかわです。
アドベントカレンダー18記事目書いていきます。
前回の続きです。
3章 誤解されない名前
名前が「他の意味と間違えられることはないだろうか?」と自問自答する
1 と 2
誤解を招く名前は変更する
例:Clip(text, length)
def Clip(text, length) ・ ・ ・
このままだと
- 最後からlength文字を削除
- 最大length文字まで切り詰める
のかわからない
疑問を抱かせる名前はだめ
max_charsにすると効果的
3 限界値を含めるときはminとmaxを使う
限界値を明確にするため、名前の前に
max_
min_
をつける
4 範囲を指定するときはfirstとlastを使う
範囲を指定する際に「start」「stop」を使うことがあるが、
stopは複数の意味に解釈される事がある。
包含的な範囲(終端を範囲に含める)なら、firstとlastを使う方がいい
5 包含/排他的範囲にはbeginとendを使う
プログラミングの命名規則では、包含/排他的範囲にbegin endをよく使う
endは少し曖昧だが、英語にはこれに置き換わる語がない(らしい)
beginとendを使うことが最善であるらしい
6 ブール値の名前
ブール値の変数やブール値を返す関数の名前を選ぶ際は、
true falseを明確にすべし
trueかfalseのどちらが正しいかをそれとなくにおわせる必要がある
is や hasを使いブール値だとわかるようにする
否定形は避ける
7 ユーザの期待に合わせる
ユーザが先入観を持っているために誤解を招くことがあるため、
誤解されない名前に変更する必要がある。
例としてget*()をあげると、
コストが低いものだという先入観がある(らしい)。
もしコストが高いのであればこれを明示される名前に変えるべき。
8 例:複数の名前を検討する
名前を決めるときは、複数の候補を検討すべし