Index: [Article Count Order] [Thread]

Date:  Sun, 18 Feb 2001 22:19:51 +0900
From:  Kaoru Hosokawa <khosokawa@....com>
Subject:  [XP-jp:01613] Re: XP 	で再利用できますか?
To:  "extremeprogramming jp ObjectClub.esm.co.jp"	<extremeprogramming-jp@....jp>
Message-Id:  <B6B5FB06.10EF%khosokawa@....com>
In-Reply-To:  <20010218073942398.AAA207@....jp@ginza>
X-Mail-Count: 01613

ホソカワです。

On 01.2.18 05:01 PM, "Y.Terada" <yterada@....jp> wrote:

> 寺田@東工大 です.
> 山田@メタボリックス さん,返答ありがとうございます.
> 
> 
>> 「もちろん」と言い切ってしまいましょう:-)
>> XPはリファクタリングなどを通じて、再利用できるコンポーネントや
>> パターンは何かということを探索していくプロセスだと認識しています。
> 
> なるほど.
> XP はアプリケーションだけでなく,再利用可能なコンポーネントやパターンもインク
> リ
> メンタルに開発していくプロセスである,ということですね.
> 
> 
>> 単純できれいに作られてさえいれば、後から少しのメソッドを追加することは
>> 幾らでもできますから、そのときにやればいいのでは?
>> (もちろんソースコードもないパッケージとして外に出すようなものは
>>   また別の話になるでしょうけれど)
> 
> メソッドの追加に関してはそうだと思います.後からメソッドを追加することはそれほ
> ど
> 大変なことではないと思います.
> 
> しかし,「再利用」とか「拡張性」を考えると,間に抽象クラスを一つ噛ませた方が良
> い
> 場合があります.YAGNI の原則に従おうとすると,こういう拡張性のための抽象クラス
> が
> 作れないのではないか,という気がします.また,後から抽象クラスを噛ませるのは,
> メ
> ソッドを追加するほど簡単ではないように思います.
> 
> 私の乏しい経験においては,抽象クラスを導出しようと頭をひねった時のほうが,案外
> き
> れいにデザインできたように思います.おそらく,抽象概念を捻出する過程において,
> そ
> のクラスの本質とか Responsibility が見えてきて,上手くいったんだろうと思ってい
> ま
> す.XP がこういった,1ランク抽象的な概念や本質を見抜こうという努力を否定して
> し
> まうものならば,それはちょっと残念な気がするのです.
> 私が「オブジェクト指向は楽しい!」と感じるのはまさにこの瞬間(抽象概念が上手く
> 導
> 出できた瞬間)ですので.(^^;
> 
> この辺に関しては,どのようにお考えでしょうか?

私はYAGNIをこのように捕らえています。例えば、Dogというクラスが必要になりまし
た。ここで、将来を考えて、抽象クラスAnimalを作り、それを継承してDogクラスを
作るようなことは、YAGNIになってしまいます。メソッドがAnimalに属するべきかDog
に属するべきかなどを考えているのなら、(Animalなしで)Dogクラスをストレート
に書きます。後で、Catクラスが必要になって初めて、Animal クラスを考えるのだと
思います。

寺田さんは、Animalクラスを作るのでしょうか?

-- 
Kaoru Hosokawa
khosokawa@....com