遅い→起動時

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

ありがちなダメプログラマー:いまだに「グローバル変数は悪だ」と思っている

きっと昔読んだ入門書にこう書いてあったんだろう。

グローバル変数はスパゲティコードの要因になりますので、なるべく使わないほうがいいでしょう。

でも、他にスパゲティコードの要因があっても気付かない。
「内部で呼び出している手続きに必要だから」というだけで、使いもしない引数を要求する手続きには無頓着。
どうしてグローバル変数というものが言語に盛り込まれているのかにも無頓着。
引数にフラグが混ざっていることにも無頓着。*1
グローバル変数以上にグローバルなデータにも無頓着。(そういうデータにフラグが混ざっていても無頓着。自分でコードを読み返しても気付かない)


そしてグローバル変数を使わなければ可読性が上がると思っている。*2




シングルトンパターンはグローバル変数を正当化したデザインパターンとして有名だけど、これを否定している解説書はあるだろうか。


もうとっくにグローバル変数は認められているんだよ。


d:id:pmint:20070222:p1に関連記事。

*1:フラグは分岐条件の判定と、分岐後処理を分けて書くようなもの。不適切なgotoと同じ悪影響があるが、気付かずに使う人が多かった。

*2:グローバル変数を使うと可読性が下がる」という入門書はあっても、逆は無いよ。「べからず」集を守ったところで読みやすくはならないんだから。