牛尾です。
> 私の考えでは,たとえ無駄になることがあっても Animal クラスを抽出しようという努
> 力が,再利用に結びつくのではないか,と思っていました.ですから,この努力を否定
> してしまう YAGNI の原則にはちょっと違和感を覚えました.
> しかし,山田さんや上手さんのコメントから XP 的な再利用法が少し分かってきたので,
> この違和感も解消しつつあります.
ちょっと話がそれるのかも知れませんが、
いきなりデザインパターンを完璧に使いこなした、完璧なクラス分け
を、これからプロジェクトで起こるだろうことを完璧に予想できて
クラスを作れるモデラーなんて人になれるのならいいのかもしれません。
しかし、PJに実際にかかわってみると、現実に開発する人はたいてい
オブジェクト指向が始めてでどうクラスわけしたらいいのか、メソッド
分けしたらいいのかわかりません。という声がほとんどで、結果として
手続き型言語チックな巨大クラスがいっちょあがり、、てなことが
多いような気がします。
また、モデラが再利用できるようにうまくクラスを作ってPGにわたして
保守してもらったら、最初はよかったけど、いろいろ仕様変更している
うちに、再利用が効かなくなっていった、、みたいな話もききます。
しかしリファクタリング+シンプルデザインはそれを取り除いて
くれると思います。どうやっていいかわからない人にもそのガイドを
示して、catだとかanimalにしたほうがいいかな〜とか悩まずに、
再利用バリバリのクラス作れる。というところが私にはとても魅力的
だと思います。メインテーマの再利用という点でもこれによって、
デザインパターンとか勉強してない人でも、初めて取り組む人でも
再利用できる(クラスの再利用の意味だけでなく、コード無いでの再利用も)
ソースが書ける点が偉大だと思います。
#こうソースを書くのが正しい!と示してるのはXPぐらいのような気がします。
勉強不足なので、ちゃうのかもしれませんが。