リーダブルコードを読む part2
こんにちはかわです。
アドベントカレンダー17記事目です。
続きを書いていきます。
2章 名前に情報を詰め込む
1 明確な単語を選ぶ
「get」はあまり明確ではない
例 def GetPage(url):
・・・
これはどこから取ってくるものなのか?
インターネットから取ってくるのであれば
「Feach」「Download」のほうが明確
例 Size -> Height NumNodes MemoryBytes 等
気取った言い回しより明確で正確に
2 tmpやretvalなどの汎用的な名前を避ける
tmp・retval・foo この3つより
目的、実物の値を表した名前を選ぶ
retvalには「戻り値」という情報しかないためプラスαの情報を付加する
tmpという名前は、生存期間が短く、一時的な保管が大切な変数にだけ使用
ループイテレータ(i, j, k, iterなど)が複数ある場合、
説明的な名前にするとバグが目立ちやすくなる
3 抽象的な名前よりも具体的な名前を使う
例 ServerCanStart() -> CanListenOnPort()
任意のTCP/IPポートをサーバがリッスンできるかを確認するメソッド
変更後のほうがメソッドの動作をそのまま表している
4 名前に情報を追加する
名前は短いコメントのようなもの
大切な情報があれば「単語」を変数名に追加する
値の単位や危険や注意を換気する情報も追加したほうがいい
5 名前の長さを決める
スコープが小さければ短い名前でいい
->スコープが大きいならば長い名前を
エディタの「単語補完」機能を使用すべし
頭文字や省略形を使用する場合、誰が見ても明確に
不要な単語は取り除く
6 名前のフォーマットで情報を伝える
いろいろなフォーマットがあるためチームで統一して書くべし
大文字やアンダースコアに意味を持たせる