栗原さん,こんにちは.石井です.
XPに関する私見ですが・・
> XPでは今実装しなければならないことに集中せよ。みたいなところがあり、
> 再利用についての考慮がどうなっているのか、私にも見えていません。
> パターン(デザイン、アーキテクチャのレベルに関わらず)を意識的に使お
> うとすることも、将来の拡張性を考えていることになるんじゃないかと考え
> て、結構混乱します。
XPでの再利用についての考慮というのは
・同じコードは2度書かない(once and only once)
・難しいものを最初にやる(worst things first)
で補われていると思います.同じコードを2度書かない,ということは
システム内部では結果的にその共通コードが再利用されているという
ことになりますよね?
また,難しいものを最初にやる,ということは,より一般性のある
オブジェクトを最初に実装しないといけないので,これもいってみれば
再利用性のことも考えている,といえなくもないでしょう.
XPの立場としては,再利用性や将来性も考えて設計した場合,
当然過度に複雑さが増してしまうだろうし,間違って設計してしまう
可能性もある,だから,リファクタリングを使って今あるコードを将来
にそなえクリーンな状態に保っておこう,ということになると思います.
リファクタリングしていくと勝手に再利用可能なコードになっている,
という感じなんじゃないでしょうか?あるいは,勝手にパターンには
まってくる,みたいな.