Index: [Article Count Order] [Thread]

Date:  Mon, 5 Mar 2001 01:21:08 +0900
From:  "hasegawa" <hasegawa@....jp>
Subject:  [XP-jp:01680] Re: XP で再利用できますか?
To:  <extremeprogramming-jp@....jp>
Message-Id:  <005d01c0a4c7$219935f0$640aa8c0@....jp>
References:  <00c501c0a2cb$914828a0$640aa8c0@....jp> <20010302085203936.AAA229@....jp@ginza>
X-Mail-Count: 01680

長谷川@テクノポートです。

----- Original Message ----- 
送信者 : "Y.Terada" <yterada@....jp>
送信日時 : 2001年 3月 2日 金曜日 午後 06:14

> 寺田@東工大 です.
> 
> > #一瞬、静かになったので、ドキッとしましたが(^^;。
> 
> すいません.
> もう卒業なので,大学のメールを読む機会が減ってきているのです.
> 今後も返事が遅れることがあると思いますがご容赦ください.
> 3月下旬以降には完全に読めなくなってしまいますし.

はい、わかりました。
と言っても、私もほとんど顔を出す機会はないんですが(^^;。

ニューライフですね。
楽しい生活になるよう、祈っています(^^。

> > もうひとつは、名前の問題です。これは落とし穴ですが。
> > 名前が付けられると、私達はそれを直接見ないで、自分の中にある
> > イメージでそれを捉えるようになります。省力という点ではいいかも
> > 知れませんが、実際にそこにあるものが良く見えなくなる場合もあります。
> > この辺りは、「老子」などを読まれると、うむっと納得するかもしれません。
> > #パターンランゲージの最後は、結局パターンランゲージを捨てることです(^^;。
> 
> う〜む,「老子」ですか.ちょっと哲学は苦手なんですが・・・.(^^;
> 具体的には,例えば「IT革命」という名前によって逆にその本質が見えにくくなっ
> ている,というようなことでしょうか.

「IT革命」に限らず、再利用やパターンにしても同じだと思います。
言葉には利点が一杯ありますが、欠点がないわけではありません。
その大きな欠点が、無名の存在を無視するとか、言葉だけに任せる
とかいったものだと思っています。

> > ただ、私が言いたかったのは、デザインパターンが単純に、
> > 再利用可能な部品を作っていくことのようには思えないと言うことです。
> > やはり、legacyなものとの調和というもの、ライブラリとフレームワーク
> > の組み合わせの自由、問題があってもこのようなシステム適合的発想が
> > あるんだ、といったところがいいような気がします。
> > #再利用というと全てがごっちゃにされてしまうよな気がします。
> 
> デザインパターンは「再利用可能な部品を作るための技術」ではない,というのは
> そのとおりだと思います.誤解されているような気がするのですが,私は,デザイ
> ンパターンそのものが再利用可能な部品であると思っています.つまり,目的や場
> 所は違えども,何度も繰り返し似たようなパターンを使うということは,デザイン
> パターンそのものを再利用していることになる,ということです.

多分、これはまさにパターンのことをさしていると思います。
パターンを適用すると言うことは、意識的想起を伴うためか、
考え方の再利用などと言われているようです。
#実際には、無意識的にそうしていることも多々あるのですが。

これは物事の捉え方になると思うのですが、日科技連の(ソフトウェア
再利用のための設計パラダイム)『ソフトウェア・モデリング』(1988)は、
パターンという言葉は出てきませんが、再利用と言う観点から、
結論としては区別できないほどまでに似ています。

ただ、パターンやパターンランゲージというと、それは再利用と
言うよりも、構築の本質そのもののような気がしています。
ここにはあのパターンが使える、あそこにはこのパターンが使える、
というようなやり方ではなく、全体がパターンランゲージとなります。
#デザインパターンはそのレベルがカットされていますが。

しかし、単に結果としてみるのでなく、プロセスとしてみると、
これらは経験から生まれ、人々の間で慣習化されることにより、
形が作られてきます。この場の性格が大切と私は思っています。
私の接している環境が特別なのかもわかりませんが、どうも
今の開発の仕方では、不健全なパターンランゲージが
できてしまうように感じています。

そして、XPです。私は、XPの目指す環境が開発環境としては、
まともなあり方を示しているように感じ、そこにあるフォースが
よきパターンランゲージを形成していくように思えます。
ある意味、本当に再利用が意味あるものなら、XPでもいつか
それが出てくると考えています。
#そして、パターンランゲージも。

> > XPが打開すると考えている根拠を述べることはとても難しいです。
> > しかし、幾つかの徴といったものがあり、それが単なる方法論では
> > ないものにしていると思います。たとえば「勇気」という言葉が
> > 出てきます。私はパターンで、自分を信じることを取り戻したと
> > 思っています。自信過剰というものとは根本的に違います。
> > 
> > これとは逆にオブジェクト指向は、私にはどうも自分を信じるなと
> > でも言われているような気がします。長い間、オブジェクト指向に
> > トライしてきたと自分では思っているのですが、いつまでたっても、
> > 設計すると本当にこれでいいのかという疑問を断ち切ることが
> > できませんでした。
> 
> なるほどです.XP やパターンは,自分の設計を信じる勇気と,途中で設計を変更す
> る(リファクタリングする)勇気を与えてくれるということですね.
> しかし,このご意見では XP が打開するのは「蜃気楼となっている再利用」ではな
> くて「自分の設計に対する不信感」となっています.長谷川さんの意見を読み直し
> ますと,「XP で再利用を言う必要はない」とおっしゃっていますね.これは,XP 
> と再利用は根本的に異なるものであって,同じ土俵で語られるべきものではない,
> という風に解釈してよろしいでしょうか?

ここの、
  > このご意見では XP が打開するのは「蜃気楼となっている再利用」ではな
  > くて「自分の設計に対する不信感」となっています.
という部分は、単なる私の表現の限界であって、XPが打開する全てでは
ありませんので、ちょっと気をつけてくださいね(^^;。

> XPと再利用は根本的に異なるものであって,同じ土俵で語られるべきものではない,
> という風に解釈してよろしいでしょうか?

に関しては、そう*私は*捉えています。

> > #どう言えばいいのか、迷いますしたが。
> > 少しきつい言い方になるかもしれませんが、それって作るものを
> > 既にあるものにあわせているだけじゃ?って気もします。
> > 本当に作る側にとって、それは適合しているのか、もう少し突っ込めば、
> > そういうことを考えることすら棚上げしてしまうことになるンじゃ?
> > と言うことです。
> 
> 申し訳ないのですが,いまひとつ長谷川さんの真意が読み取れないでいます.
> 長谷川さんはパターンに対して非常に肯定的な立場でいらっしゃると思います.そ
> して,デザインパターンは,「既存のものを上手く再利用するための技術」あるい
> は「legacyなものとの調和」であるとおっしゃっています.このような長谷川さん
> のご意見を総合しますと,既存のものに合わせて(既存のものを再利用して)作る
> ことに非常に積極的であるように思えるのですが,上記のご意見では突然に既存の
> ものの再利用を否定してしまっています.一体どちらが真意なのか,教えて頂けな
> いでしょうか.

ここでは、やはり「パターン」という言葉と現状のソフトウェア開発が
問題になっていると思います。現状のソフトウェア開発では、デザイン
パターンがかなり利用できると考えています。そういう意味で、回りの
人にアドバイスすることが多いです。しかし、実際に使えば、その限界が
わかるはずです。単に了解だけで終わるケース、間違った適用をするケース、
はたまた、実際には拡張しなければ使えないケースなど色々出てきます。
それほど、現実は甘くないようです。が、その限界を知り、自分達で
パターンを作り出していくことに望みを持っています。
#私個人としては、あくまでパターンランゲージですが。

しかし、XPには、それはどうでもいいことだと思います。
#*パターンだから*という考え方はしないという意味ですが。
逆に、だからこそ、パターンやパターンランゲージの評価が
公平にされると思っています。

「既存のものの再利用を否定」するわけではなく、言葉同様、
本当にその価値を評価することが大切で、そこからより環境に
適合した形にすべきだと言うことです。

ただ、考慮しなければならないのは、XPにしても、パターンにしても、
現在の姿で確定しているということではなく、まだまだ、変化していく
ものであるということだと思います。

> 「既存のものに合わせて作る」ことの善悪は,状況によるのではないかと思います.
> 芸術作品を作ろうとしているわけではないのですから,結局はコストに見合うかど
> うかが判断基準になるのではないでしょうか.
> お客さんの予算に余裕があるのであれば,要求にぴたりと合致するものを作り直す
> のも良いかもしれません.しかし,予算が厳しいのであれば,多少は既存のものに
> あわせた製品になるのもやむを得ないでしょう.既存のものを利用した方が信頼性
> も向上しますし.
> 
> # この辺は実務経験がないので想像の域を越えませんが.

お客さんの要望にあう既存のものは、本当にあるんですか?
XPにしても、パターンランゲージにしても、このことを重視しています。
問題は、既存のものを利用した方が本当にお客さんの予算や要望にあった、
更に信頼性の高い物が提供できるかどうかです。

今の現状から判断すると、そうではなく、既存のあるものに利用者が
あわせなければならない状況の方が多いと思います。そして、
信頼性に関しても、部品を使って組み立てる部分で問題を発生させます。
これは、多機能な部品(用途のカバー率が高い)を使う場合でも、
小さな部品(小回りが聞く)をたくさん使う場合でも言えます。

逆に言えば、こういった問題が出なければ、どんなものでも
いいと私は思っています。単に部分で判断することはできず、
やはり全体として判断する視点が必要かと思います。

> あとは,対象領域によって考え方が変わるのでしょうね.
> 確かに,例えば Web アプリケーションなどのような,今一番ホットで進化が速く,
> 顧客の要求も変化が激しい領域では,あまり「再利用」にこだわると既存のものに
> 縛られて新局面へのブレークスルーができなくなってしまうかもしれないですね.
> 私が作っていたのは,大学の研究などで使う数値計算プログラムが多かったので,
> ちょっと雰囲気が違います.行列の演算方法は今後も絶対変化しないですから.行
> 列演算を再利用しても,ちっとも既存のものに縛られているような感じはしません
> でした.

余談になるかもしれませんが、私の場合は、ドメインによって、
そのような違いは出ないような気がします。ホットであっても、
十分間に合うなら化石になったようなものも使うかもしれません(^^;。

ちょっと、誤解されたのかも知れません。行列の演算方法そのものを
云々といっているわけではありません。実際、コンピュータ処理では、
基本的に数学を無視して何も作れません。しかし設計や実装は本当に多様です。
私が言っているのは、その設計や実装の持つ多様性に対してどうするかです。

再利用性に関して、私は、寺田さんやXPの方々が考えられている
ことが間違っているとかいう気はありません。本当の現場で、
再利用性こそ目指さなければと判断されるなら、そのように
されることを邪魔しようとは思いません。

ただ、この再利用性というのは、ソフトウェア工学において、
ソフトウェアの生産性と信頼性が低く、それを何とかするために
提示されたものです。私はこのフォースが余り好きではありません。
むしろ、本当に作る現場にあるフォースに従って、構築する方が
いいと考えています。優先順位は重要ですので。

-- 長谷川(hasegawa@....jp)