タグ

programmingに関するmczhのブックマーク (202)

  • プログラミングのセオリー

    同じ動作をするプログラムでも,ベテランが書いたプログラムと経験の浅いプログラマが書いたプログラムを比べると,ベテランの方が明らかに「上手」なプログラムを書く場合が多い。その差は,数え切れないほどの「定石」の存在から来る。識別子の命名ルールやコメントの付け方に始まり,引数の並び順,デザインパターンに至るまで,ベテラン・プログラマは意識的に,あるいは無意識にいくつもの定石にのっとったプログラムを書いているものだ。 書はこうした定石を集め,その意味や意図を丁寧に解説している。いずれの定石も,著者が普段のプログラミングで実際に心がけているものだという。若手プログラマがこれらの定石をまとめて学ぶには良いテキストだろう。ベテランなら長い経験からすでに身に付けていることが多いかもしれないが,普段から何となく従っている定石にどのような意味があるのかを考える良いきっかけになるかもしれない。 主にC言語とJ

    プログラミングのセオリー
    mczh
    mczh 2008/12/03
    プログラムの価値を高める“定石”を学ぶ
  • 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場

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

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