矢崎さん,こんにちは.石井です.
MLをちゃんとフォローしてないので,的外れのことをいっているかも
しれないのですが・・
> 私もXPを知ってから、プログラムを書く(設計するも含む)時に、「シン
> プル」を心がけようとしています。しかし、なかなか難しいと感じています。
Do the Simplest Thing That Could Possibly Workのことですよね.
これは,XPの場合変更コストのカーブがほとんどフラットだ,という
前提条件を考慮に入れないと危険だと思います.
(そのために,Unit Testing, Refectoring Mercilesslyなどなど,
開発工程の後の段階になっても変更を簡単するための仕組みが
用意されている,と)
つまり,後でどうとでもできるから,今シンプルに作ればOKということ
ではないでしょうか?
ところが,現状のソフトウェア開発は全然そんなことありません.
あらかじめ柔軟性を考慮しきちんとした設計を最初にやっておかな
かったから,後で痛い目をみた経験は誰にでもあるでしょう.それは
開発の後になればなるほど変更コストが高くつく,という条件のもと
ではしょうがないことだと思います.
> これも例えばなのですが、デザインパターンにしろ、Fowlerのアナリシス
> パターンにしろ、ある種の柔軟性、再利用性、拡張性のようなものを
> ねらいとしているところが多いと思うのですが、これらはXPのシンプル
> と対立するものなのでしょうか?
XPの場合は,車の運転のようにハンドルを微調整,ときにはUターンも
してこれらのパターンにたどりつく*こともある*,ということだと思います.
対立はしていないと思いますよ.