Index: [Article Count Order] [Thread]

Date:  Sun, 18 Feb 2001 17:01:09 +0900
From:  yterada@....jp (Y.Terada)
Subject:  [XP-jp:01610] Re: XP で再利用できますか?
To:  extremeprogramming-jp@....jp
Message-Id:  <20010218073942398.AAA207@....jp@ginza>
In-Reply-To:  <v04210a00b6b4d7d245c4@[192.168.0.250]>
References:  <v04210a00b6b4d7d245c4@[192.168.0.250]>
X-Mail-Count: 01610

寺田@東工大 です.
山田@メタボリックス さん,返答ありがとうございます.


> 「もちろん」と言い切ってしまいましょう:-)
> XPはリファクタリングなどを通じて、再利用できるコンポーネントや
> パターンは何かということを探索していくプロセスだと認識しています。

なるほど.
XP はアプリケーションだけでなく,再利用可能なコンポーネントやパターンもインクリ
メンタルに開発していくプロセスである,ということですね.


> 単純できれいに作られてさえいれば、後から少しのメソッドを追加することは
> 幾らでもできますから、そのときにやればいいのでは?
> (もちろんソースコードもないパッケージとして外に出すようなものは
>   また別の話になるでしょうけれど)

メソッドの追加に関してはそうだと思います.後からメソッドを追加することはそれほど
大変なことではないと思います.

しかし,「再利用」とか「拡張性」を考えると,間に抽象クラスを一つ噛ませた方が良い
場合があります.YAGNI の原則に従おうとすると,こういう拡張性のための抽象クラスが
作れないのではないか,という気がします.また,後から抽象クラスを噛ませるのは,メ
ソッドを追加するほど簡単ではないように思います.

私の乏しい経験においては,抽象クラスを導出しようと頭をひねった時のほうが,案外き
れいにデザインできたように思います.おそらく,抽象概念を捻出する過程において,そ
のクラスの本質とか Responsibility が見えてきて,上手くいったんだろうと思っていま
す.XP がこういった,1ランク抽象的な概念や本質を見抜こうという努力を否定してし
まうものならば,それはちょっと残念な気がするのです.
私が「オブジェクト指向は楽しい!」と感じるのはまさにこの瞬間(抽象概念が上手く導
出できた瞬間)ですので.(^^;

この辺に関しては,どのようにお考えでしょうか?

# ん? そういえば,メタファーというのは抽象概念の導出を促進しそうですね.
# ・・・メタファー自体を良く理解してませんが.


> C++はOOではないので:-)

(苦笑).C++,好きなんですけどねぇ・・・.(^^;
じゃじゃ馬ならしは楽しい,とか,MT車の運転は楽しい,とか,そんな感じが.


> 誰も使わない(使えない)巨大な「ライブラリ」の残骸をいっぱい見てますから、
> 「再利用可能」ということの意味自体が問われなければならないと思います。

「ライブラリ」のいやらしい点は「継承」ですよね.私は,深い継承ツリーを見るといつ
もぞっとしてしまいます.継承のためにライブラリ全体がベタベタと依存しあって,「こ
のクラスだけつまみ食い」というのが上手くできないのが良くないなぁと感じています.

XP の掲げる「シンプルデザイン」が,ライブラリから継承のいやらしさを払拭し,真の
再利用を実現するものであるならば,それは大いに歓迎したいです.

  _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

      Yuichiro TERADA

      Tokyo Institute of Technology,
      Kobayashi/Todoroki Lab.
      + yterada@....jp
      + http://ginza.mes.titech.ac.jp/~yterada

  _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/