赤坂さん、
こんにちは、ごうぎです。
On Thu, 14 Aug 2003 11:20:14 +0900
Hidehiko AKASAKA-san wrote:
:
> > というのも、当時も今も、少しずつスタイルや作業の質が変わりながらも、設計・実
> > 装時ともに、責務を強く意識して設計(あるいは実装しながら設計)すると、自然にパ
> > タンの適用やインターフェース間のプロトコルの設計、構造(仕掛けを含む)の設計を
> > 伴ってしまうからです。そうでないとしっくりこないのです。そして、この責務を重視
> > したアプローチはかなりしっかりしたモデリングやコアな部分の作りこみを自然と伴い
> > 、そこから見るとXP的ではないように感じたということです。
>
> じっくり考えないといけなくなりますからね。
> ペアでさくっと「テスト&実装」のリズムが狂いそうですものね。
まさしくそう感じるんです。ペアでやる作業ではないように思うのです。
> > 「責務を(強く)意識すると、XP的でなくなるのでは」という点、みなさんはどのよ
> > うに考えられていらっしゃいますか? 責務を意識する際の適切な意識の仕方というのが
> > あるのかもしれませんがまだ見えていません。(この辺りの問題とうまく付き合うバラ
> > ンス感覚がないようですf^^;)
>
> 私は、そういう責務(自然な役割)を俊敏に適切に割り振ることのできるプログ
> ラマ(開発者)がXPをドライブするものだと信じていました。
> だから、XPが流行りだした当初は、メンバーの半分はベテランの上級プログラマ
> でないと上手くいくわけないと考えていました。
御意です。
> ただ、XPでなくても、時間をかけて、責務を意識して分析したつもりでも、実際
> にはなかなか上手く役割分担できているともいい難い状況だったりします。
> 結局は、時間をかけてもかけなくても(XPかどうかに関わらず)、不自然な役割
> が見えてきたときにリファクタリングする必要があるわけですよね。
はい。
> 私個人の理想としては、私を含めたメンバーがこの「自然な役割分担」が出来る
> ように、(例えば小学校の時のドリルの様に、)いつもモデリングの練習(勉強)
> をして、特定の状況において役割分担のセオリーを身に付けておく(あるいは、
> 身に付ける努力を行う)必要性を感じます。
> そうでないと、早く出来ても不自然なプログラムになってしまうと思うからです。
これも御意です。
XPでは不自然なプログラムになったと感じた時点でリファクタリングすることを
当然として扱われている点はとても評価できるものです。ですから責務を意識して
もしなくてもどちらでも良いのかもしれません。
少し見えてきた気がしています。それは、責務を意識しまた責務の洗い出しがう
まくなればなるほどXP的でなくなるが、その変化(パラダイムシフト)さえも許さ
れるのかもしれないということです。そしてそのパラダイムシフトした時にできて
る開発プロセスは人間系を大事にしたものになっているなら夢がありますね。
山崎さん:(こんにちは)
> 恐らくこの問題に関してもいわゆる 1:9 の法則があって、ほとんどのクラス
> は責務の分析をしっかりやらずにプログラミングしてもあまり問題がないが、
> 一部のクラスは分析をしっかりやる必要があり、そのバランスをうまく調整す
> る必要があるという事ではないでしょうか。
OOで設計した場合、1:9(あるいは2:8)の1(あるは2)の部分が、9(あるいは8)に
影響を与えますからその通りと思います。ただ何が1にあたるのかというバラン
ス(あるいは分類)はおのずと取れると考えています。(もちろんその洗い出し
の質は様々でリファクタリングが不要になるとは考えていません。)
しかしながら仮に十分なバランスが取れたとしても、赤坂さんが指摘されてい
るようにその1の部分の設計実装では、(例えばペアプロ)どのように関わればよ
いか悩ましいプラクティスが出てくるという問題が表れます。
この問題をうまく扱うための、つまりペアプロに関していえばペアプロをし続
けながら適当な責務を洗い出し実装をするにはどのように関ればよいかというあ
たりが見えていないことを悩ましく感じていました。個人的な経験からいうとこ
の作業はレビューはしてもらいたいが、まずは一人でもくもくと遣りたいしそう
でないとうまく出来る自信がないからです。(古いタイプの人間なのかもしれま
せんがf^^;)
この点については今もまだ見えていませんが、上記しましたように責務を重視
するということをXPが嫌うものではないだろうという認識をあらたに持ちました。
ではでは。
--
Shigeru Gougi < mgougi@....com >
http://www.wingnest.com/gougi/