Index: [Article Count Order] [Thread]

Date:  Mon, 19 Feb 2001 21:27:03 +0900
From:  yterada@....jp (Y.Terada)
Subject:  [XP-jp:01625] Re:XP で再利用できますか?
To:  extremeprogramming-jp@....jp
Message-Id:  <20010219120543676.AAA262@....jp@ginza>
In-Reply-To:  <01Feb19.092924jst.27777@....jp>
References:  <01Feb19.092924jst.27777@....jp>
X-Mail-Count: 01625

寺田@東工大 です.


山田@メタボリックス さん:
> 上手さんや太田さんがおっしゃっているように、最初から再利用を念頭においても
> それが実際に再利用されるときのニーズにあっているものになるかどうかという点で
> かなりリスクを覚悟する必要があるだろう、ということじゃないかな。
> (XPが前提とするように、変化が早く要件がよく確定していないようなドメインの場合)

小井土@オーエスケイ さん:
> 視点を変えて、Catが将来追加されることが確実ならAnimal クラスを導入しても
> 良いと思います。
> しかし、実際はwolfが追加されたとします。
> すると、犬族クラスをスーパークラスにした方が、適切な抽象化だったとわけです。
> 要するに、抽象化する場合、具象クラスが明確になってから抽象クラスを導入する
> 方が、圧倒的に良いクラス構造を導けるわけです。
> YAGNIは、抽象クラスは、似たクラスが複数必要になって必要に応じて作りましょう
> といっているのだと思います。

なるほどです.明快で,非常に納得させられました.
確かに,拡張を予想して行った抽象化が,実際に必要になった拡張にそぐわなくて,結
局作り直した経験があるような気がします.また,再利用するつもりで作ったものが,
結局はイマイチ使えないものだったこともあります.

XP 的には,「必要になってから抽象化すればいいじゃん!」ってことなんですね.
だんだん,XP の思想みたいなものが頭の中で消化できてきたような気がします.


牛尾さん:
>  しかしリファクタリング+シンプルデザインはそれを取り除いて
> くれると思います。どうやっていいかわからない人にもそのガイドを
> 示して、catだとかanimalにしたほうがいいかな〜とか悩まずに、
> 再利用バリバリのクラス作れる。というところが私にはとても魅力的
> だと思います。メインテーマの再利用という点でもこれによって、
> デザインパターンとか勉強してない人でも、初めて取り組む人でも
> 再利用できる(クラスの再利用の意味だけでなく、コード無いでの再利用も)
> ソースが書ける点が偉大だと思います。

こういう見方もあるんですね.
「XP は能力の高いチームじゃないとできない」という議論(や,これに対する賛否両
論)もあった気がしますが,逆に OO 入門者でも XP なら簡単に再利用が促進できる,
ということですね.



単体テストとリファクタリングの思想は,それを知った瞬間から「面白い」と思いましたが,XP のそれ以外の部分については,なんとなく胡散臭いような感じが払拭できないでいました.しかし,今回で少し XP の思想の理解が深まった気がするので,もう少し XP が好きになれそうです.

仕事(≠バイト)でプログラミングをしたことがないので,「ペアプログラミング」や
「共同所有権」,「オンサイト顧客」などに対してはまだ感想を持つこともできない状
態ですが.