Index: [Article Count Order] [Thread]

Date:  Sat, 16 Aug 2003 23:30:37 +0900
From:  ANC04864 <ANC04864@....com>
Subject:  [XP-jp:04613] Re: 「 AnExtremeProgrammingEpisode 」の翻訳版を掲載しました
To:  extremeprogramming-jp@....jp
Message-Id:  <20030816233027.92C5.ANC04864@....com>
In-Reply-To:  <20030816.205131.63122534.yamazaki@....jp>
References:  <3F3DB7D0.172FDF38@....jp>
X-Mail-Count: 04613

山崎さん、こんにちは
ごうぎです。

On Sat, 16 Aug 2003 20:51:31 +0900 (JST) 
Susumu YAMAZAKI-san wrote:
:
> >  私のイメージともしかすると違いがあるのかもしれません(し、いのかもしれ
> > ませんが、そのあたり私が曖昧にしか書いていないため分からない)のでもう少
> > しイメージを補足いたします。
> > 
> >  私は、1(あるいは2)の部分がコアの部分と考えています。
> >  想定したシステムの1(あるいは2)ぐらいの規模のものがコアになり、それが
> > しっかり作れればあとはかなり安定して実装や保守をしていけるという実感があ
> > ります。もちろんコアをとても汎用的なフレームワークとして考え実装しようと
> > した場合には、1(あるいは2)以上の大きさになる場合もあると思います。
> 
> 以前に僕はこう書いたのですが、
> 
> > この問題に関してごうぎさんと僕の認識の違いとなっているのは、恐らく最初
> > に用意するコアとか叩き台の規模だけなのではないかと思います。
> 
> 規模だけではなく、コアという言葉の捉え方が違っていたようです。まず、
> 
> コア:システムの中核
> 
> というところは一致できると思います。ごうぎさんのイメージを解釈しますと、
> 
> コア:システムの中核:システムの主要な動作を定めているクラス群
> 
> という性質が加わるのではないかと思います。

はい。

>                                           ここで重要なのは、ごうぎさん
> の「安定する実感がある」という言葉を踏まえると、コアの範囲を決めるのは
> 実装以前ということになります。

はい。「範囲」は、その通りです。
 
> 一方、僕の最初のメールでは
> 
> > 恐らくこの問題に関してもいわゆる 1:9 の法則があって、ほとんどのクラス
> > は責務の分析をしっかりやらずにプログラミングしてもあまり問題がないが、
> > 一部のクラスは分析をしっかりやる必要があり、そのバランスをうまく調整す
> > る必要があるという事ではないでしょうか。
> 
> と書いていた訳ですが、この 1 のクラス群というのは、実装後に分析/設計
> を振り返ってみた時に、他への影響が大きいと判断したクラス群です。そのよ
> うなクラスはコアの中でも特に影響力の大きな部分です。つまり、
> 
> (僕の言う)分析をしっかり行う必要のあるクラス < (ごうぎさんの言う)コア
> 
> という関係が成り立ちそうです。僕の実感では、コアは全体の2割くらいで、
> その中でも実際に影響力の大きなクラスは全体の1割くらいです。この数字は
> 恐らくごうぎさんも納得頂けるのではないかと思います。

 はい、納得です。最小限のコアはそれぐらいではないかと思っています。

> >  だたこういうアプローチだと分析をしっかりしないといけないし、設計でも責
> > 務を綺麗に洗練分類しそれを元にインターフェースを定義し同時にそれを使う仕
> > 掛けも作ってていくことなどが必要になります。XPでこういったことを最初にし
> > っかりするのは相応しくなく感じていたのです。しかし、責務を強く意識してXP
> > をしていると次第に上記のアプローチに近づいていくように感じました。そして
> > 実際かなり近づいた時にXPがどういった姿になっているのか悩んでいたのでした。
> 
> この点に関する僕の仮説は次の二つです。
> 
> (1) 分析をしっかり行う必要のあるクラスは、実はそれほど多くなく、分析前
>     に推測可能である。
> (2) 分析をしっかり行っても XP に自然に取り込む事が出来る。
> 
> (1)については繰り返しになりますので、ここでは詳しく述べません。
> 
> (2)については、XP でもプログラミングに入る前に分析/設計を行うわけです
> が、その比重が若干変わることになるだけではないかと思います。XP 白本を
> 読み直したのですが、ペアプログラミングは、さくさくコードを書くためでは
> なく、ペアで互いにレビューし合う事で意識の共有を図りながら実装を進める
> ために行うと僕は解釈しました。つまり例えばごうぎさんと僕がペアを組んで
> いて、ごうぎさんが詳細な分析の必要性を主張して僕が同意したならば、分析
> に力を注いだ後でテストを書いてコーディングに入っても何ら問題はないと考
> えます。

  ありがとうございます。おっしゃられていることとてもよくわかりました。
  
 以下、お目汚しですが、ついでに私のほうももう少しがんばってみます。

 まず、少しずれますが、平鍋さんが次のようにかかれました。

 On  2003/08/16 13:49 Kenji HIRANABE wrote:(in :"[XP-jp:04605]", 2003/08/16 13:49)
> また,どちらの場合でも,「名前」に注目するとその分割,分担が良いかどうか,
> が見えるというケースが多いと思っています.

 これは、(同じ感覚からくる表現かどうかわかりませんが)私にはとてもよく分かる表現
なのです。いうなれば「美しさ」です。
 完璧になったかどうかというのは恐らく判断が難しいと私は考えていますから「美しい」
と感じるかどうかに最後は頼ってしまいます。ですからシンプルか自然かどうかも「美しさ」
だと思っています。最後は、「シンプルな美しさ」「自然な美しさ」そういったものを感じ
るかどうか。なので美的感覚がないとリファクタリングは進まないとも思っています。(偉
そうに書きながら私はわまり美的感覚がないほうですf^^;)

 軌道修正。
 コアの部分をあれこれと書いてしまったのは、個人的にはその部分がもっとも創造的で楽
しい部分だからなのです。こういう創造を一人で楽しむという感覚ってXPが目指しているの
とはちょっと違うと感じていました。確かに解釈によりなんら問題なく取り込めると考える
こともできるのですが、理屈ではなく、感覚として、そのちょっと違うという感じからXPの
思想にそのまま入れたのでは美しさを感じなかったのでパラダイムの違いかなと思ったりし
たのでした。もちろん私がそういう感覚だというだけなのでどうでも良い話だったのですが
、ついつい軽率に発言してしまいました。すみません。f^^;

--
 Shigeru Gougi  < mgougi@....com >
 http://www.wingnest.com/gougi/