はじめまして、塚本といいます。
>>>>> "firo" == 矢崎 博英 <firo@....jp> writes:
firo> 私もXPを知ってから、プログラムを書く(設計するも含む)時に、「シン
firo> プル」を心がけようとしています。しかし、なかなか難しいと感じています。
firo> 例えば、ある程度柔軟性をもたせようというのが、私がこれまでやって
firo> きて身についた方法の1つなのですが、それは果たしてシンプルに
firo> 対立することなのかどうか?です。
XP関連の資料をきちんとフォローしていないので「XPのシンプル」については
口を挟むことが出来ませんが、一般的に、柔軟性が即ち悪という図式はないと
思います。
個人的な経験から明らかに悪いと思うのは「短命な柔軟性」といいましょうか、
「当座の機能A」と「将来の機能B」を単純に合成したものを実装しておいて
「柔軟性を持たせた」と考えるような発想です。
その一方で「短命なシンプル」もあります。ユーザ(人間でなく別の機能Xのこ
ともあります)が「当座の機能A」の実装詳細に依存しきっているため、将来の
「類似機能A'」に対応できないようなものです。
# このタイプのユーザはハードコーディングを好んでします。
「短命な」が前置きされたシステムは、見えている範囲の機能を「ぎゅう詰め」
にしたものです。計画性に乏しいその発想では、まだ見えない機能C,D,... を
追加する備えには無頓着なので、破綻する時期は割と早いものです。その先に
は場当たり的な拡張工事を重ねるに至る暗い道が控えていますが、これは多く
の開発者が経験してきたことです。
firo> これも例えばなのですが、デザインパターンにしろ、Fowlerのアナリシス
firo> パターンにしろ、ある種の柔軟性、再利用性、拡張性のようなものを
firo> ねらいとしているところが多いと思うのですが、これらはXPのシンプル
firo> と対立するものなのでしょうか?
XPの思想がどうであれ、再利用性は肯定されるべきでしょう。とかく物事は
「シンプルなパーツに分解」して、目的に合うように「組み合わせる」ことが
良いようです。デザインパターンやアナリシスパターンの根底にある考え方も
そうでしょうし、他の世界、例えば UNIX 文化では、フィルタを組み合わせる
パイプだったりもします。
便乗質問ですが、「XPのシンプル」はその妨げになるのでしょうか。
--
Yoshihiro Tsukamoto