遅い→起動時

http://d.hatena.ne.jp/pmint/

ブラックボックスのような変数をこねくり回すコード

トレースしなければ読めない可読性の低いコード。
動作、内部状態(変数の値)を追わなければならない。
グローバル変数はどこでどう変化しているか把握しづらいので使うべきではない」と言いつつ、変数を初期化から順に追わなければ読み解けないコードを書く人は多いのでは。


グローバル変数なら検索だけで影響している部分がすぐ分かる。こちらほうが遥かに分かりやすい…というのに。


そういったコードに対する苦肉の策が「1つの関数は○○行まで」なんだろうか。
長いコードでも別手続きに分ければ不要な変数を一掃できるし、多くの変数を初期化するのと同じ効果が得られるので、ブラックボックス化していた内部状態がはっきりする。


でもそれなら変数の値がどんなものかをアサーションとして書くべき。
それに、変数を適切なスコープで宣言するようにすれば、トレースしなければならないような変数は少なくなる。


d:id:pmint:20080227:p1d:id:pmint:20080227:p2グローバル変数について。