タグ

programに関するauthorNariのブックマーク (7)

  • 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場

    「変数のスコープは狭いほど良い」と妄信する 変数でもメソッド名でもクラス名でも言えることだが、単純に「スコープは狭いほどよい」という方針でプログラムすると、逆に保守性も可読性も悪いプログラムができあがることがけっこうある*1。 実際、「あちこちから頻繁にアクセスするようなオブジェクトやメソッド」は、スコープをぐっと広くしてしまった方が(場合によってはグローバル変数やグローバル関数にしてしまった方が)、いちいちパラメータ渡しのバケツリレーをせずに、オブジェクトや機能を使うことができ、プログラムの可読性も保守性もずっと向上することがけっこうある。 たとえば、プログラムのいろいろな箇所から比較的頻繁にアクセスする必要があるようなオブジェクトや機能がバインド(格納)された変数やメソッドのスコープをクラスやメソッド内のローカルにして、それを使うときは、いちいち各クラスやメソッドにパラメータ渡しのチェ

    中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場
    authorNari
    authorNari 2008/10/26
    変数スコープ,共通化 賛否両論ありそうだが
  • 一人読書会 - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC) - higepon blog

    0.始めました 1. Changing Software 2. Working with Feedback 3. Sensing and Separation 4. The Seam Model 5. Tools 6. I Don't Have Much Time and I Have to Change It 7. It Takes Forever to Make a Change 8. How Do I Add a Feature? 9. I Can't Get This Class into a Test Harness 10. I Can't Run This Method in a Test Harness 11. I Need to Make a Change. What Methods Should I Test? 12. I Need to Make Many Change

    一人読書会 - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC) - higepon blog
  • λ Calculus - まずは遅延評価から : 404 Blog Not Found

    2008年02月04日07:00 カテゴリLightweight Languages λ Calculus - まずは遅延評価から うーん、まずY Combinatorというのはおじさんたちが悪かったかな。ギター習いたてでいきなりFの音を出すようなもんだから。 Haskell のリストと遅延評価が少し分かった - IT戦記 Y コンビネータって何? - IT戦記 まずは、遅延評価についてきちんとおさらいしておこう。 慌てるな、ループは急に止まらない まずは、以下の式を考えてみる。 (function(a, b, c){ return a ? b : c; })(true, 1, 1+1); 実行してみると、1となるはずだ。しかしここで重要なのはこのことじゃない。後ろの1+1が実行されるかだ。このことはどうやって確認したらよいだろうか。以下のようにしてみればいいはずだ。 var ELSE =

    λ Calculus - まずは遅延評価から : 404 Blog Not Found
    authorNari
    authorNari 2008/02/04
    遅延評価解説
  • わずか565バイトテトリスのプログラミング解説

    「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 以下のソースコードをメモ帳に貼り付けて、htmlで保存すればテトリスが動きます。 <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){fo

    わずか565バイトテトリスのプログラミング解説
  • Djangoへの片思い日記 - ■Struts脳の恐怖とRails

    Strutsは良いフレームワークであった。 登場時のStrutsは MVCを体現しWebフレームワークとしてプログラマ達に夢を見せた。 今見てしまえば冗長で可読性の低い設定ファイルに 糞のようなtaglibとゲロのようなjspであるが それでも当時はセンセーショナルだった。 しかし、その後、Strutsには悲劇が起きる。 あまりにもセンセーショナルなデビューのおかげで それを金に換えようとしている奴らに目を付けられてしまった。 人月計算とExcelスーツで出来ている奴らだ。 奴らは Strutsをいかに簡単であるか宣伝し 役に立たない講習会で金を取り sessionが何なのかすら知らない人間を大量に生み出した。 そうやって生み出されたStruts脳人間は 「動くコードが正義」の負の面を体現し スパゲティを更に絡ませたActionFormを書き 解読不能なActionを書いた。 勉強など一

    Djangoへの片思い日記 - ■Struts脳の恐怖とRails
    authorNari
    authorNari 2007/08/27
    おもわずトラックバックかいちゃった
  • God

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • Meadow/Emacs memo:

    現在の最新版での確認が追い付いておらず,設定も古くなってきています.順次, 確認していきますが,中には動かないもの,エラーになるものもあると思います.気付い た方は,最下部のメッセージかメールにて知らせていただけるとありがたいです. 新規追加分の動作確認は Meadow 3.0 でのみ行っています。 Meadow の最新版 (あ るいは Emacs の最新版) では一部古いものと異なる機能などがあります。このページで紹 介しているものも既にいくつかは動作しませんので、ご注意ください。気付いた点は Wiki にメモしてあります。 このページでは Emacs を Windows に移植した Meadow というテキストエディタについて, ゼロからの基礎知識 使い倒すための設定 誰が使うんだよという無駄な設定 Emacs Lisp の紹介 Unix の知識 と片っ端から紹介しています.ほとんどの

    authorNari
    authorNari 2007/03/08
    リファレンス
  • 1