間違ったプログラミングテクニック

http://blog.livedoor.jp/dankogai/archives/51130751.html
http://d.hatena.ne.jp/fromdusktildawn/20081026/p1

  • 「変数のスコープは狭いほど良い」と妄信する
  • 「同じロジックのコードを2度以上書くな」と妄信する
  • プログラミング言語を極めるのが大切」と妄信する

激しく同意。

計算機プログラムの構造と解釈
にも同じようなことがちゃんと書いてある。

デフォルトの言語仕様の上に、自分が開発しようとしているアプリケーションのドメインに特化した言語仕様を載せて創り出した「拡張言語仕様」の上でプログラムを書くと生産性が大きく向上する。

ちゃんと階層的に抽象化していけば、自然とこうなるはず。

同じようなパターンがプログラムの複数箇所に現れる場合、それらを抽象化して一つの共通ロジックへのパラメータ渡しとして実装し、それを複数箇所から呼び出すように実装すると、プログラムコード量が小さくなり、保守性が良くなったような気がするので、未熟なプログラマが、なんでもかんでも共通ルーチン化しまくって、非常に保守性の悪いプログラムにしてしまうことがある。

俺にもこんな時期がありました。

結局のところ、ほとんどのコンピュータプログラムは、人間や社会のニーズや欲望を満たすために存在し、人間や社会の利害や感情の構造の組み立て(これも一種のプログラミングだ)と無縁ではいられない。人間や社会の利害と感情の組み立てまで視野に入れたアーキテクチャ全体を、もっともシンプルに設計する方法を突き詰めることで、ほとんどプログラムを書かずに根本的な問題が解決する方法を見いだし、顧客も会社も同僚も自分も、関係者全員が幸せになるというようなケースも多いのである。

ってなことを突き詰めて考えてると、結局なにも手を動かせなくなる。