Index: [Article Count Order] [Thread]

Date:  Thu, 13 Apr 2000 12:36:16 +0900
From:  Yoshihiro Tsukamoto <y-tukamoto@....jp>
Subject:  [XP-jp:00197] Re: XP Chapter7 Four Values 	の解説
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <uem8aoeou.fsf@....jp>
In-Reply-To:  <38F499AC.44F194D0@....jp> (firo@....jp's message of "Thu, 13 Apr 2000 00:35:49 +0900")
References:  <B519647C.D80%khosokawa@....com> <38F499AC.44F194D0@....jp>
Posted:  13 Apr 2000 13:36:01 +1000
X-Mail-Count: 00197

はじめまして、塚本といいます。

>>>>> "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