Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm
http://d.hatena.ne.jp/fromdusktildawn/20081026/p1 うーんと,30点.「もう少しがんばりましょう」レベル.*1 初心者が惑わされると可哀想なので,一応突っ込んどく. 「変数のスコープは狭いほど良い」という迷信 「同じロジックのコードを2度以上書くな」という迷信 「プログラミング言語を極めるのが大切」という迷信 一つ目は大原則.特にグローバル変数は最悪だ.言語によっては避けられないこともあるが,それはコーディング規約などでカバーするしかない. 二つ目も,ほとんどの場合は大原則.未熟なプログラマーには,何故か負担が大きすぎるらしいけど. 三つ目はケースバイケース.ほとんどの場合は言語も極めてない奴の方が多く,まずは「言語を極めろ」は概ね正解. なんだかなぁ。「先ずは使うことを覚えろ」「次に使わないことを覚えろ」「最後に使うか使わないか選ぶことを覚
「変数のスコープは狭いほど良い」という迷信 変数でもメソッド名でもクラス名でも言えることだが、単純に「スコープは狭いほどよい」という方針でプログラムすると、逆に保守性も可読性も悪いプログラムができあがることがけっこうある。 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場 by ふろむだ 変数とオブジェクトが持つ属性やメソッドを混同してません? いわゆる「変数」のスコープが問題になるのは、一言では「依存性が複雑になるため」。 そのオブジェクトだったりメモリ領域だったりの内容は、その変数を使う時点でどのような状態を持つかっていうのは、その処理の前に実行されたどれかの処理結果に依存する。が、実際にその変数の内容を定義したり更新したりしたのはどの処理かは、もう闇の中。だから、グローバル領域の変数に対して、使う直前にわざわざ初期化して
「変数のスコープは狭いほど良い」と妄信する 変数でもメソッド名でもクラス名でも言えることだが、単純に「スコープは狭いほどよい」という方針でプログラムすると、逆に保守性も可読性も悪いプログラムができあがることがけっこうある*1。 実際、「あちこちから頻繁にアクセスするようなオブジェクトやメソッド」は、スコープをぐっと広くしてしまった方が(場合によってはグローバル変数やグローバル関数にしてしまった方が)、いちいちパラメータ渡しのバケツリレーをせずに、オブジェクトや機能を使うことができ、プログラムの可読性も保守性もずっと向上することがけっこうある。 たとえば、プログラムのいろいろな箇所から比較的頻繁にアクセスする必要があるようなオブジェクトや機能がバインド(格納)された変数やメソッドのスコープをクラスやメソッド内のローカルにして、それを使うときは、いちいち各クラスやメソッドにパラメータ渡しのチェ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く