- PR -

.NET開発者のためのリファクタリング入門について

投稿者投稿内容
skulker
ベテラン
会議室デビュー日: 2004/06/08
投稿数: 67
投稿日時: 2005-01-09 16:42
引用:

guionさんの書き込み (2005-01-09 15:57) より:
そういやUMLには「派生属性」という便利なものがありましたね。
そうか。プロパティの表現には、あれを使えばいいのか。


違うと思いますが。
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2005-01-11 12:28
objectです。

>コモンセンスさん
レスに関する私の要望に同意を頂き、有難う御座います。

>>「抽象概念に対する名称の付け方」というのは、「代表系」の選び方と言って良いと思います。
>> (中略)要するに抽象度が高ければ高いだけ、1つには絞れない事が多い訳です。
>ここは保留です。私の論点とはマッチしていないように思いますので。
私は、「代表系」に関わる議論は重要であると考えていますが、ご要望に沿って除外します。

>これらの概念の中身が明確になるとはたとえばどんなことを
>想定されていますか? 先にも書いたように「それは写像である」
>と言っても明確にはならないと思うのですが。
私は、
「メソッド」を「写像」と捉えなおす
事で、概念の一部だけが強調される事で生じる「歪」が除去出来ると考えています。
#ここでは、特に
#「メソッド=ファンクション・プロシジャー」
#という「ソフトウエア関係者」に於ける無意識下の前提を意識しています。

それから、
「プロパティ・メソッド(情報・振舞)」に関わる重要な点を、紙面の都合で結果だけを「象徴的」に述べると
「情報」には、「振舞的情報」が存在し、
しかも
この存在が「情報・振舞」に於いては「不可欠」
であるという事です。

>たとえば高級プログラム言語もアセンブリ言語も正確さにおいては
>同等だがソフト科学の発展は高級言語の方に向かってきたのはなぜ
>でしょうか?というようなことをいわんとしたのですが、冗長部分では
>ありました。
了解しました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-01-11 21:42
引用:

guionさんの書き込み(2005-01-09 15:57)より:

UMLのクラスに第4の欄をつけてそこにプロパティを書き、


 Borland Togetherでは、第4の欄にプロパティが入ります。

引用:

そういやUMLには「派生属性」という便利なものがありましたね。
そうか。プロパティの表現には、あれを使えばいいのか。


 メソッドに<<property>>とか<<getter>>とか<<setter>>とか、ステレオタイプをつけて表現かな?と思っています。が、ツールが対応してくれないと如何ともしがたい。。。せめてVisio2005では何らかの対応をしていて欲しかった。
# Eclipseみたいに、Getter, Setter生成コマンドがVSにもあればいいのに
_________________
コモンセンス
会議室デビュー日: 2005/01/05
投稿数: 15
投稿日時: 2005-01-12 15:03
コモンセンスです。
脱線するかもしれませんが…
以下の所論についてはみなさんどうお考えに
なるでしょうか?
私は「いまごろなにを? これだからオブジェクト指向(論者)は
おさわがせだ」と思いました。

オブジェクト指向、ホントにあった怖い話(2004/7/10)から
>…平澤氏は、オブジェクト指向を巡る混乱の要因は、「プログラミング技術」としての
>オブジェクト指向と「汎用の整理術」としてのオブジェクト指向を同一のものとして認
>識しようとする態度にあるとする。
> 例えば、オブジェクト指向の基本解説書や記事では、クラスやポリモーフィズムなど
>…を説明する際に、現実世界をそのままオブジェクト指向という考え方を適用して表現
>しようとする。しかし、「オブジェクト指向と現実世界は大違い」(平澤氏)であり、
>オブジェクト指向を正しく理解するには、まず、プログラミング技術として、構造化プ
>ログラミングの限界を突破した後に登場した新たな技術として理解することが重要であ
>り、主に上流工程における汎用の整理術として応用されるオブジェクト指向とはまった
>くの別物としてとらえることが必要だと力説した。
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2005-01-13 13:09
objectです。

「オブジェクト指向、ホントにあった怖い話」拝見しました。
#「プロパティ」の認識と密接に関係があるという事で、そのままここに書きます。

>平澤氏は、オブジェクト指向を巡る混乱の要因は、「オブジェクト指向」と「汎用の整理術」
>としてのオブジェクト指向を同一のものとして認識しようとする態度にあるとする。
この文章は、逆に
「平澤氏」が「統一的なオブジェクト指向概念を抽出出来なかった」
と自ら表明を行ったと理解すべきなんでしょうね?

>「オブジェクト指向と現実世界は大違い」(平澤氏)
何を表現しようとしているのか不明ですが、
「現実世界」と「ソフトウエア空間」が「全く同じ筈が無い」訳です。
#「オブジェクト指向」と「現実世界」を直接対比している事にも違和感があります。

「全く同じではないが有効」である為には、それなりの
「シッカリした構造(対応関係)」
が必要な訳です。

そして問題は、
「それは何か」
という事だと思います。
#「現実世界・ソフトウエア空間」共に「人間の認識と無関係」に存在する訳ではないですし、
#人間が認識しない限り、対象として意識する事すら出来ないという事実は重要です。

>オブジェクト指向を正しく理解するには、まず、プログラミング技術として、
>構造化プログラミングの限界を突破した後に登場した新たな技術として理解することが重要
本当は、「新たな技術」の意味が重要なんですが、それに付いては何も言ってないですね。
要するに、「オブジェクト指向」を「構造化プログラミング」と同じレベルで考えているんでしょうかね?
#この文章で判断すると、もしかしたら、「オブジェクト指向」だけでは無く、
#「ソフトウエアの構造化」の理解にも違いがあるのかも知れませんね。

私は、
「構造化プログラミング」は「ソフトウエア空間」上での「構造・対応関係」を
そして、
「オブジェクト指向」は、「ドメイン空間」と「ソフトウエア空間」での「構造・対応関係」を
問題にしている
と思っています。
#その中で重要なのは「準同型」の概念だと私は思っています。

>主に上流工程における汎用の整理術として応用されるオブジェクト指向
>とはまったくの別物としてとらえることが必要だと力説した。
これは、モデリング自体を否定している訳ではないですよね。
「オブジェクト指向」を分割すると「自由度」が上がるでしょうから、理解し易くはなるんでしょうね。
でも、
「オブジェクト指向を理解し易く」するのが、目的では無いですよね?
#理解し易くする為に歪んでしまっては本末転倒です。
「平澤氏」にとって、何の為の「オブジェクト指向」だったんでしょう?

それから、この際ですから、「現在のプロパティ(メソッド)に関する問題」をあげると、
「C#(.NET)」も「Java」も「基本的なスタンス」はそう違わない。
しかし、実際的には
「C#(.NET)」は「プロパティ」を採用し、
「Java」は「プロパティ」を採用していない
という差が表れているに過ぎないという現実です。

これは、結局「今のソフトウエア業界」の「構造(プロパティ・メソッド含)」に対する認識の低さに原因があると思っています。
#だからこそ、私はここで主張している訳です。
#「マイクロソフト」には、「プロパティ」関わる概念の整理を、もういい加減にキチンとやって欲しいですね。


[ メッセージ編集済み 編集者: object 編集日時 2005-01-13 13:30 ]
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-01-13 13:13
げげっ、既に新しい投稿が(^^;
肥大してきたので新しいスレッド立ててみました。
よろしければどうぞ。

オブジェクト指向と現実世界は大違い?
guion
常連さん
会議室デビュー日: 2004/12/24
投稿数: 30
投稿日時: 2005-01-15 19:54
引用:

skulkerさんの書き込み (2005-01-09 16:42) より:
引用:

そういやUMLには「派生属性」という便利なものがありましたね。
そうか。プロパティの表現には、あれを使えばいいのか。


違うと思いますが。



あり?違いますか?
うーん。
ところでそうすると、派生属性は何に使うとよさそうな物なのでしょうか?
guion
常連さん
会議室デビュー日: 2004/12/24
投稿数: 30
投稿日時: 2005-01-15 20:22
Jittaさんの書き込み (2005-01-11 21:42) より:
>Borland Togetherでは、第4の欄にプロパティが入ります。

さすがBorland(良い意味にせよ悪い意味にせよ)、という感じでしょうか。
propertyを使えなければBorland製品と連動させる旨味が大幅に失われますよね。

>メソッドに<<property>>とか<<getter>>とか<<setter>>とか、ステレオタイプをつけて表現かな?と思っています。

言語やライブラリやフレームワーク※の流儀により、
プロパティ名とメソッド名が一致しなくなりがちなので、
ちょっと苦しいですね。

※"JavaだとsetHoge/getHoge"ってことになってますが、
あれは正確にいえばJava言語じゃなくJavaBeansでの話ですよね。
たとえばたしかWebObjectsとやら(のJava binding)は、
getterメソッドはproperty名と同じにするんだとか。

あと、「属性によって関連が表現される」っていうことがしばしば有るわけだけど、
同様に「propertyによって関連が表現される」ことも有るわけで(Delphiじゃおなじみ)、
じゃあそれってどうやって描きましょうか?ってのが心配で。

スキルアップ/キャリアアップ(JOB@IT)