トップページ⇒tech
1001コメント376KB

国産DIコンテナSeasarとくーす その3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
一部で話題になっている国産オープンソースDIコンテナSeasar V2(略してS2)。
ってどうよ?みんなもう使ってるの?
使用経験とか、実戦配備情報とか、つかえねーよボケ、とかいろいろ書いてね。

あと、開発プロセス「くーす」の話題もこちらでどうぞ。


本家 seasar.org
http://www.seasar.org/

Seasar Projectグループ
http://seasarproject.g.hatena.ne.jp/

ひがやすをのここだけの話
http://d.hatena.ne.jp/higayasuo/


前スレ
その1 http://pc5.2ch.net/test/read.cgi/tech/1092044210/
その2 http://pc5.2ch.net/test/read.cgi/tech/1098885253/


関連スレ(なのか?)

Java Spring Frameworkを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1077465099/
0329デフォルトの名無しさんNGNG
ファウラータソの感覚に振り回されてクリスマスの休日にドメインモデル談義か。おめでてえな。
0330デフォルトの名無しさんNGNG
そろそろこっち逝け

Martin Fowlerのスレッド
http://pc5.2ch.net/test/read.cgi/prog/1099814095/l50
0331デフォルトの名無しさんNGNG
結論:構造化に始まり構造化に終わる。
0332デフォルトの名無しさんNGNG
いいじゃんここで。おもしろいよ。
業務機能とソースコードのバランスをどうとるか、って噺はあんまり聞かないから。
0333デフォルトの名無しさんNGNG
Transaction Script=構造化的OO
Domain Model=DOA的OO
ってことでいいのか?
http://www.nri-aitd.com/tips/g-patern.htmlの
それぞれの特徴を見てるとそんな気がしてきた。
0334デフォルトの名無しさんNGNG
>>328
話が、ファウラーたんもびっくりレベルの複雑な業務ロジックだったときに、果たしてそういえるのか。
特定のコンポーネントだけをみて、自分と直接関係のあるコンポーネントだけをみて、用が足せるのか。
甚だ疑問。
0335デフォルトの名無しさんNGNG
>>333
またまたスレ違いの質問なんだけど、DOAの原典的な本とか、始祖的な人ってどこらへんになるんだろう?
一度中途半端に調べてみたんだけど、わからなかった。
0336デフォルトの名無しさんNGNG
>>334
疑問に思うのは自由だけど、それで用は足せる。
DIでは、自分の直接の知り合いとしか話しないから。
相手を探しにいくことはないんですよ。
コンテナが必要な人をDIしてくれるんだから。
0337デフォルトの名無しさんNGNG
PoEAAを書いた頃にDIってあったの?
0338デフォルトの名無しさんNGNG
>>336
べつにここでDIを出してくる必要はないと思うんだけど。

それと、DIでオブジェクトが組み立てられて、個々のオブジェクトが単純で、少ない数のオブジェクトとしかやりとりしないからといっても、本質的な複雑さが解消できるものではないと思うよ。
本質的な複雑さというのは、系が閉じているときは一定なので、モデリングのやりかたで複雑さがかわるものでもないし。
0339デフォルトの名無しさんNGNG
ここでDIが出てくる必要はないな。
業務サービスベースで考えるので、そもそもの実装が「なんらかの特定業務に
関連した情報を返す」ということがモデリングのスタート地点になってる。

ドメインモデルは「おれのモデルでできることはここまでだよ。他の処理はほかの
モデルがやるんだろ? おれは知らんよ」という構成になっているので、各モデルの
位置づけを理解した上で、さらにそれがどうつながってるか理解しないと、何を
やろうとしているのか(何の業務を解決しようとしているのか)分からなくなる。

サービスベースでもサービスが増えればややこしいのは事実。DAOも含めると、30
近いクラスが絡み合ってることもあるよ。
でもこの複雑さは、おれたちが普通に関数なりメソッドを呼ぶときに「あ、ここはちょっと
別のprivateなメソッドにでも分けるか」とかやってメソッド一つずつをシンプルにして、
1メソッド3000行とかならないようにするのと似てる。つまり機能が複雑になってきたし、
重複しそうだから、一部機能を_機能として_分割してるわけで。

おなじ絡み合っているのでも、つながりが追いやすいんじゃないかな。
0340デフォルトの名無しさんNGNG
たぶんそういうことだろうね。
業務が複雑になったときには、ドメインモデルを構築してないと、「なんらかの特定業務」すらどこで行っていいかわからなくなると思う。
でも、ドメインモデル構築自体の複雑さが問題にならなくなるような複雑なシステムはそれほどない、と。
たぶんシステムの多くを占めてる、流通系とかお店のシステムだと業務がそれほど複雑じゃなくて、商品・サービスの移動と「なんらかの特定業務」がリンクしやすいしね。
0341デフォルトの名無しさんNGNG
最近なんかこのスレ妙に建設的じゃねーか(w
でも悪くない気分
0342デフォルトの名無しさんNGNG
おれのおかげだな。
0343デフォルトの名無しさんNGNG
>>342のせいで気分が悪くなった
0344デフォルトの名無しさんNGNG
英語や技術を頑張るのは結構だが、先人を平気で禿呼ばわりする人格を
変えるのが先だと思う。それとも英語で書く時と日本語で書く時に
使い分けるつもりなんだろうか?
ほんと気分悪い。
0345342NGNG
>>344
それはおれは関係ないよー。
でも、気分が悪いことを思い出させてしまってごめんよー。
0346デフォルトの名無しさんNGNG
>>344
誰もファウラータンを禿なんてよんでないよー。
0347デフォルトの名無しさんNGNG
 「_ ̄フ  ノ^ー┐ ///////////ノ/
 ,-、二、 ーク /  7_/////////^
 `ー‐‐'  `ー'     ///////し
   _l^l_  i^i i^i   ///////
  / ,--┘ U ノ |  //////^
  !__ニコ  lニ.ノ    7///    _,,.. . __
 __l^l__へ  i^i i^i  //^    .. _  `ヽ
 ゙┐r┐T゙ ∪ ノ |  |/     /::/.┬".)   l
  く,ノr'_,ノ  lニ.ノ   7    _iゞ/イ。_ノ    _r'''、
   |    ,へ ,ヘ /    / ニ-''^\¨   ∠.} l
   |    `゙ / / |.   |l、ヾ⌒-|  u  r_ノノ "
   |    ヾ二ノ  |    ヽ |`´_,--|  i、ニイ
   |    /,ニ^\. |     \l<-ニフ ,ノ ,. \、'
  | | | |  | しリj |  \    \ ̄ ,/ノ/ , | Z
  ゚ ゚ ゚ ゚  `ー" ー'  〔      / ̄/ '", /// ,.
0348デフォルトの名無しさんNGNG
俺はどっちかというと344のような
学級会的道徳観の持ち主の方がすんごい気持ち悪い。
おえー。
0349デフォルトの名無しさんNGNG
もし>344が上司のことを影で悪くいいながら
本人の前で言わないようなことしてたら同じ穴の狢
他人に腹が立つのは大抵そこに自分を見るかららしいぞw
0350デフォルトの名無しさんNGNG
ファウラーたん議論が終わった感じだけど、蒸し返してみる。

ドメインモデルってMVCモデルのMを具現化したものだろ。でもくーすってMVCじゃなくて、
ヤコブソンのBCEを具現化したものだろ。Boundary-Control-Entityって用語を使ってる
ところからして。

BCEってMVCの問題点を解決するものとしてあげられてるんだし、MVCなドメインモデル
から見て矛盾があるのはいわば当然じゃないかな。
0351デフォルトの名無しさんNGNG
>>350
ファウラーのMVCモデルは、ウェブプレゼンテーション層の中だけの話。
アプリケーション全体をMVCにして、UI以外を全てMに押し付けるモデルは、EJBが重すぎて崩壊してしまったのを見ればわかるように、実際には使い物にならない。
0352デフォルトの名無しさんNGNG
J2EEのMVC Model2におけるMはファウラーたんのドメインモデルの領域だと思うが...

あとEJBが重すぎるのはリモートコールを多用するからじゃないか?
ローカルコールで動かすと、悪名高いEntityBeanですらそれなりの速度で動くぞ。
0353デフォルトの名無しさんNGNG
動作の重さを言ってるわけじゃないのだが・・・
それと、蒸し返すといっても、少なくともこのスレでMVCという言葉は出てきたことがないのだが。
0354デフォルトの名無しさんNGNG
そうだね....
じゃあ、蒸し返すのでなく次の話題ってコトでどうだろうか.....
0355デフォルトの名無しさんNGNG
いやぁ、MVC Model2なんて使い物にならないというか、どうにもならないことがわかってるので、話題としておもしろくない・・・
0356デフォルトの名無しさんNGNG
MVCmodel2だと、VがMからデータを得る。
でも、ファウラーのMVCでは、Vはドメインモデルとやりとりしない。
MVCmodel2とファウラーのモデルは対応しない。

というか、MVCmodel2で、やんちゃなV(JSP)と、たよりないC(Servlet)を与えられて、「あとはMです。ご自由に」と広大な空き地をおしつけられても、ねぇ。
0357デフォルトの名無しさんNGNG
ドメインモデルとしてのMは、ほんとにドメイン特有のオブジェクト群。
MVCmodel2としてVに渡されるMは、ドメインモデルとは別のものでVが必要とするM。

ドメインモデルのMからMVCmodel2としてのMへの翻訳が必要。
おれはかならずこの翻訳を意識している。
翻訳しないケースがあれば、それはたまたま両者が一致しているという特殊ケースと位置付ける。
0358デフォルトの名無しさんNGNG
>>357
そのMVC Model2のモデルとドメインモデルの変換コストの話が
http://d.hatena.ne.jp/higayasuo/20041207#1102379088
http://d.hatena.ne.jp/higayasuo/20041220#1103516338
で、ドメインモデルが工数がかかるという根拠になってるみたい。

結局話題がリンクしてる?
0359デフォルトの名無しさんNGNG
kusuに話をもどしていいかな?
kusuが対象とする開発は20-50人の中規模と思うのだけど、
開発者にDIについての認識を強要するのは酷な話。
少なくとも、開発者全員が一読するという代物ではない。
であれば、kusuって開発の方法論であって開発標準ではないよね。
この規模の方法論って他にもあるのに、なんであえて提唱したのか
よくわからないんだよなぁ。
0360デフォルトの名無しさんNGNG
>>357
翻訳といっても、その幅は広いよね。
インスタンスへのリンクを渡すだけのファサードな場合もあれば、ドメインモデルの全プロパティをコピーするDTOな場合もある。
357の意図してるのはどちら?
0361デフォルトの名無しさんNGNG
>359
同じ規模のものが他にあっても、提唱しない理由にはならないでしょ。
ほとんど同じものが他にあるなら別だけど。
0362デフォルトの名無しさんNGNG
一口にMVCと言っても色々。
http://www.google.co.jp/search?hl=ja&q=%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%81%8C%E9%A0%91%E5%BC%B5%E3%82%8B+mvc
とかBuschmann本とか。

くーすと「レガシーなオブジェクト指向」との距離は、
Webアプリへの最適化によるものだ、と言ってみるテスト。
0363デフォルトの名無しさんNGNG
どうでもいいけど、Seasarそっちのけだな。

DIスレと分けた意味はあるんだろうか?
0364デフォルトの名無しさんNGNG
>>362
Webじゃなくても、基本的には変わらんと思うが。
0365デフォルトの名無しさんNGNG
>>361
他のものとどこが違うか、よくわからない。
Seasarに依存するってとこ?
0366デフォルトの名無しさんNGNG
>>361
PofEAAの解説にしかみえないのは、俺だけ?
0367デフォルトの名無しさんNGNG
>>361
いや、比嘉氏は既存の中規模システム開発用の開発標準にでは
満足いかなかったのではないかと思う。つまり、RUPを軽くした
国内開発者向けの標準を作らなければならないという危機感が
あったのではないか、と、そんな気がする。
kusu本を出すなら、その辺の経緯も記してもらいたい。
0368デフォルトの名無しさんNGNG
開発者が俺一人な小規模組織にはくーすは不要ですか?
0369デフォルトの名無しさんNGNG
>>368
自分の技術レベルが低いと思ったら使えばいいんじゃないの。
037044NGNG
http://d.hatena.ne.jp/higayasuo/20041220#1103529853
>話を簡単にするために常にデータと振る舞いを一緒にするというのは、
>それはそれでOK。
>
>ただし、機能が増えるにしたがって役割多すぎなクラスになる
>危険性があるということです。最初は、データと構造を一緒に
>しておいて、機能が増えてきたらリファクタリングすればいい
>という考えもあるかもしれません。しかし、それは、
>リファクタリングではありません。利用する側から見て
>インターフェースが変わってしまうからです。

インターフェース/クラスの内部でExtract Classしたクラスへ対して委譲すればいいだけでは?
そうすればインターフェースは変わりませんよね。
037144NGNG
http://d.hatena.ne.jp/higayasuo/20041220#1103529853
>「データ構造を公開することによる疎結合性を妨害」という点では、
>永続化されるようなデータの構造は、もともとpublicですから特に
>問題にはならないと思います。

何に対してpublicなのでしょうか?

また、データ構造をクラスの外へ公開することによるデメリットとして、修正箇所がアプリケーション中に分散してしまうことなどがあると思いますが、publicであることはこのことに何か解決策をもたらしているのでしょうか?
037244NGNG
つい責めるようなな口調になってしまいました。申し訳ないです。
0373デフォルトの名無しさんNGNG
>371
>修正箇所がアプリケーション中に分散してしまうことなどがあると

あっちこっち直すことになるかもしれないが、
どの業務機能から使われてるかが分かるから影響範囲が明確になる、とも言える。
これは高度に抽象化をおこなわないことによるメリットかな。

修正が難しいのはデータを「変更」する処理だろうが、それって分散して存在することは稀。
SeasarならS2Daoでエンティティ単位の管理ができるから、そんなに大変ではないだろう。
主として影響を受けるのは大抵は入力・表示関係。そしてそれはUI層の問題だから別の話になる。
0374デフォルトの名無しさんNGNG
みなSeasarやくーすにどうしてそんなに熱くなるのか,
だれか分析してくれ。
0375デフォルトの名無しさんNGNG
それにはまずロバストネス分析から始めないとだめだな。
バウンダリはなんだ?
0376デフォルトの名無しさんNGNG
>>374
パンダに熱くなったほうがいいのにね。
0377デフォルトの名無しさんNGNG
>>375
ひがたん
0378デフォルトの名無しさんNGNG
>>372
とりあえず、以後、他人に意見するのは止めることですね。
0379デフォルトの名無しさんNGNG
>>378
パンダに意見するのはOKですか?
0380デフォルトの名無しさんNGNG
s2jsfのexampleなんで、編集だけで、削除とか作ってないんだ?
「易しさと優しさ」とか言ってたのに、あとは、自分でやれってことか?
0381デフォルトの名無しさんNGNG
>>373
とりあえず前半部分は技術者の意見とは思えない。

後半は俺が読み違えてるのかもしれないので確認したいんだけど、
public属性の影響を受けるのは、値を設定するところじゃなくて
むしろ単純読込の方が量が多くて問題になる。

たとえばその属性の型が変わったり、setXXの時に小数点2桁で丸めたい、
という変更があったときに、アクセッサ経由で統一されている方が楽。
そのモデルのサブクラスを作って変数をオーバーライドしちゃうと
ベースクラス側でのメソッドの中でアクセスしてる変数と別物になっちゃうので
スマートな形でサブクラス化できないこともある。

膨大な繰り返し処理の速度を速くしたくてわざとpublic属性にすることは
あるけど、そういうのは基本を踏まえた上での小手先のテクニックとして
ソースにコメントをつけながらやることであって、できるだけ基本は
守っていた方がいい事が多い。

ひがさんはOOPのメリットをあまり理解できなかった側の人だと思うので、
44さんはもう突っ込まないであげればいいと思う。DI自体は悪くない技術だし、
彼らのモチベーションが高い方がseasarがいい方に行くと思うから。

逆にseasarが好きで変な方向に行って欲しくないからこそ、ひがさんにいろいろ
突っ込みを入れてるのかもしれないけど
0382デフォルトの名無しさんNGNG
>>380
そこはスローガンなんだからそんな言い方するこたあないだろ。
「削除も作ってほしいなあ」とか言えば気分良く作ってくれる人が
いるかもしれないのに。
0383デフォルトの名無しさんNGNG
s2jsfってjsfのコンポーネントぜんぜん使えんのか
0384デフォルトの名無しさんNGNG
>>381
うーん、何が言いたいのかよくわからんわ。

> たとえばその属性の型が変わったり、setXXの時に小数点2桁で丸めたい、
> という変更があったときに、アクセッサ経由で統一されている方が楽。

だったらそうすりゃいいじゃん。
>>381はフィールドをpublic属性にする話をしているように読めるのだけど...
永続化データがpublicだという話をそう読んだわけ?

永続化されるようなデータはそもそも構造が公開されてるもんだと
いう意味で、publicだと言ってるだけだと思うけど。

S2Dao使ったって結局各データにはアクセッサ使ってアクセスするんだし、
プロパティとして扱ってるから、アクセッサ経由だし。
0385デフォルトの名無しさんNGNG
>>380
何だくれくれクンか
0386デフォルトの名無しさんNGNG
>>376
何でパンダなんだ?
0387デフォルトの名無しさんNGNG
>>381

> 膨大な繰り返し処理の速度を速くしたくてわざとpublic属性にすることは
> あるけど、そういうのは基本を踏まえた上での小手先のテクニックとして
> ソースにコメントをつけながらやることであって、できるだけ基本は
> 守っていた方がいい事が多い。

すまん、膨大な繰り返し処理って具体的にはどんな業務ロジックなんだ?
想像できんので教えてくれ。
0388デフォルトの名無しさんNGNG
ひが君がpublished的な意味でpublicって言ったのが、
>>381に伝わらなかったってだけじゃないの。

ttp://www.martinfowler.com/bliki/PublishedInterface.html

まあマターリ行こうや。>>387
0389デフォルトの名無しさんNGNG
>>386
NHKみてなかったの?かわいかったのに。
「NHKスペシャル地球大進化 生命の巨大化」の枠でやってたから、巨大化ってパンダのことかーっ、と思いながらみてますた。
0390デフォルトの名無しさんNGNG
OOが開発効率の足枷になってる事に留意しろっつうの
0391デフォルトの名無しさんNGNG
org.seasar.dao.impl.DaoMetaDataImpl#createResultSetHandler
method.getReturnType().isAssignableFrom(List.class)
↓
List.class.isAssignableFrom(method.getReturnType())

じゃないか?
0392デフォルトの名無しさんNGNG
>>388
比嘉氏が言いたいのは、ERDは早々に確定するから属性公開しても影響ないってことだろ。
039344NGNG
http://d.hatena.ne.jp/higayasuo/20041227#1104147737
>もともと永続化されるデータ、テーブルで管理されるようなデータ
>というのは、その構造は、ER図などで外部に対して公開されています。
>
>一般的に言われるようなカプセル化の話は当てはまりません。

外部の意味が曖昧なので推測で。

ここでい言う「外部」が
>>392
>比嘉氏が言いたいのは、ERDは早々に確定するから属性公開しても
>影響ないってことだろ。
ということであれば、それでもなお、カプセル化の話は当てはまると思います。カプセル化さえされていればクラスの内部で、Extract Classした先への委譲でも、Replace Type Code with State/Strategyでも、なんでもやりたい放題できますから。

また、「外部」が外部システム等であったとしても、若干の不自由は強いられるかもしれませんが、それでもなお上記の理由でカプセル化する利点は存在すると考えます。
0394デフォルトの名無しさんNGNG
http://game10.2ch.net/test/read.cgi/game/1104208080/l100
このスレ荒らしてあげて下さい。
ウイルス貼りまくっていいですよ。
歓迎します。
039544NGNG
http://d.hatena.ne.jp/higayasuo/20041227#1104186174
>補足しておくと、ドメインモデルは、もともとデータを持ってる
>クラスに振る舞いを持たせたほうが良いという観点なはずです。それが、
>
>public class Employee {
> private PayCaluculator calculator;
> ...
> public BigDecimal caluculatePay() {
> return calculator.calculatePay(this);
> }
>}
>
>という形だということは、役割でクラス分割するのと実質同じです。

Extract Classは以下のように行うので
http://www.refactoring.com/catalog/extractClass.html
PayCaluculatorクラスができることはありませんです。
0396デフォルトの名無しさんNGNG
>>387
> すまん、膨大な繰り返し処理って具体的にはどんな業務ロジックなんだ?
> 想像できんので教えてくれ。

業務ロジックかどうかは微妙だけど java.awt.Point数万個を使うようなグラフィック処理。
あと、石油埋蔵量予測システム。(どっかで読んだ)
0397デフォルトの名無しさんNGNG
>>396
サンキュ。そういうやつか。俺の仕事では出会うことは無さそうでほっとした。
0398デフォルトの名無しさんNGNG
今更こんな事を聞くには恥ずかしいんだけど・・・・・・・

MAIN─Seasar─dicon
            │
            ├クラスA
            ├クラスB
            ├クラスC
            └クラスD

「SeasarとはクラスA−Dの纏め役で、どれを使うかdiconに
書いておけば、そのクラスを返してくれるもの。」
という理解で合ってる?ドキュメントを1ヶ月ほど読み耽って
やっとこ辿り着いた答えがコレだったんだけど・・・・・・
0399デフォルトの名無しさんNGNG
ひがさんにOOSEを読んでみて欲しいな。
0400デフォルトの名無しさんNGNG
>ひがさんにOOSEを読んでみて欲しいな。

ひがさんが問題としていることは、OOSEでも取り上げられているから。
0401デフォルトの名無しさんNGNG
>>398 すっげーおおざっぱには、それでよい。
0402デフォルトの名無しさんNGNG
初心者が1ヶ月読まないとそこにたどりつけないドキュメント。
0403デフォルトの名無しさんNGNG
http://d.hatena.ne.jp/higayasuo/20041228#1104228438
>その原因は、過度なデータ中心のクラス設計にあると私は考えています。
>データと振る舞いを1つのクラスにまとめるのは、自然なことですが、
>あるデータを使う機能をすべて1つにまとめると役割持ちすぎなクラスに
>なりやすいと考えています。

OOSEのP120~P129はその答えとなりませんか?
0404デフォルトの名無しさんNGNG
>>402
ちょっとコードを書けばすぐにわかると思うんだけどね。
最近はドキュメント読んだだけで済ませようとする人が
多いのでびっくりだ。
0405デフォルトの名無しさんNGNG
>その原因は、過度なデータ中心のクラス設計にあると私は考えています。
>データと振る舞いを1つのクラスにまとめるのは、自然なことですが、
>あるデータを使う機能をすべて1つにまとめると役割持ちすぎなクラスに
>なりやすいと考えています。業務アプリケーションなどはとくそうで、
>直接関係のない機能が1つのエンティティに押し込まれやすくなります。

そうなった場合に適宜リファクタリングしてやれば解決する問題だと考えます。

>また、複数のデータにまたがるような機能は、そもそも適したクラスに
>振る舞いを割り当てるのが難しくなります。

複数のデータにまたがるような機能が全てそうだとは言いませんが、どのドメインオブジェクトへも割り当てがたい責務はコントローラクラスへ割り当てれば良い、と古のOOSEに記されています。そのことには異存ありません。
# UnifiedProcessは全く追っていないので、もうobsoleteなのかもしれませんが

データと振る舞いをひとつのクラスにまとめる。責務が多くなりすぎたらクラスを分割してやる。振る舞いを割り当てるのに適したクラスが無い場合はコントローラクラスとする。これでも駄目なのでしょうか?
0406デフォルトの名無しさんNGNG
>>404
読む人のせいにする筆者
0407401NGNG
>>402
最新版のドキュメントは、昔と較べると段違いに充実していると思う。
# S2JSFのドキュメントがないのは、正式公開前だし、しかたないだろう。
まさたかさんの入門記事も参考になる。
http://d.hatena.ne.jp/masataka_k/searchdiary?of=15&word=%2a%5bseasar%2dtutorial%5d
(もしかすると若干記述が古くてハマるかもしれん)。

俺はS2財団の人ではない。単なるファンだ。
だが、煽りが出たらごめん。> やすを氏ほか。
あと技術的な話をしているところを、側面的なネタで汚してすまん。
0408デフォルトの名無しさんNGNG
>>401
そうですか・・・・・・やっと、やっとここまで辿り着きました(;´д⊂ヽヒックヒック

>>404
ぶっちゃけその通りです>ドキュメント読んだだけで済ませようと
「Seasar = フレームワーク」と勘違いして、「クラスを切り替えられるのは分かったから、それ
で最終的にはどうなるんだ?」という明後日な視点でドキュメントを読み続けてました。

髭剃りを他の何かだと頑なに信じ込んでしまってる人が、説明書を見ながら「髭が剃れるのは
分かったから、最終的にどうなるんだ?」と途方に暮れてる姿を想像してもらえれば近いので
はないかと・・・・・・
勿論、結論は「だから髭が剃れるんだよ」というものなんですが、見てる方向が違うと辿り着け
ないんですね、これが_| ̄|○|||

最後に、とりあえず現在のところドキュメントに不満はありません。
目は何も見てはいない、見ているのは脳。という言葉をちょっぴり実感した年末でしたw
0409デフォルトの名無しさんNGNG
>>405
>複数のデータにまたがるような機能が全てそうだとは言いませんが、
>どのドメインオブジェクトへも割り当てがたい責務はコントローラクラスへ
>割り当てれば良い、と古のOOSEに記されています。
>そのことには異存ありません。
> # UnifiedProcessは全く追っていないので、もうobsoleteなのかもしれませんが

余談ですが、昨今の、ロバストネス分析で導出されたコントロールクラスは設計モデルでそのままストレートにクラス化すべし、という風潮はあまり好きになれないです。
某オブジェクト指向本も読んでみたんですが、ドメインモデル貧血症推奨な感じで、なんだか。

RUPの人もICONIXの人も、分析段階でのコントローラクラスの責務はバウンダリかエンティティに割り当てる、もしくはコントローラ自体をクラス化する、と言ってるように思うんだが。
というか、スリーアミーゴはICONIXの人よりもきつい言い方をしてて

「コントロールクラスを実現するのに別々の設計クラスを用意するのは
適切ではない場合がある。むしろ、関連するバウンダリやエンティティを
実現する設計クラスと同じものでコントロールクラスを実現したほうが良い」

と言ってるのだが。
0410デフォルトの名無しさんNGNG
S2のドキュメントは昔に比べたらめっちゃ充実ですね。
S2Daoもここのところリリースが多かったですが、追加したあのテーションとかも
ちゃんとドキュメントに反映されてるし。
0411デフォルトの名無しさんNGNG
>>409
>「コントロールクラスを実現するのに別々の設計クラスを用意するのは
> 適切ではない場合がある。むしろ、関連するバウンダリやエンティティを
> 実現する設計クラスと同じものでコントロールクラスを実現したほうが良い」

原文を知らないので良くわからないのだけど、それってStrutsで言えば、
Action内で直接エンティティにアクセスするってことかな?
0412デフォルトの名無しさんNGNG
相変わらずドキュメントネタしか突っ込めない>>406
0413デフォルトの名無しさんNGNG
どうでもいいが、S2JSFだけ早くリリース汁
0414デフォルトの名無しさんNGNG
さっぱり話についていけないので、とりあえずPoEAAを読み始めた。
0415デフォルトの名無しさんNGNG
ひがし
> blogに、これまでのオブジェクト指向の批判を書くのは、
> 私にとってはものすごくリスクの高いことです。なにを
> 言われてもおかしくないですから。現にいろいろ言われ
> ているわけですが、それでもあえて書いているのは、こ
> れまでのオブジェクト指向がなぜうまくいっていないの
> かを考え直すきっかけになればと思っているからなのです。

「これまでのオブジェクト指向」の定義と
「うまくいっていない」とする根拠を明確に示さないとただの
戯言.今までにない自分が始めて見つけた設計方法と認識して
いるならば非常に痛い.自らの失敗経験や知りえる範囲での失
敗を踏まえた程度ではないのか.
0416デフォルトの名無しさんNGNG
  ↑
OO厨キター!
0417デフォルトの名無しさんNGNG
>>415
同じコトをファウラータソにも突っ込んでやってくれ。
http://www.nri-aitd.com/tips/image/g-patern_4.gif
は根拠が薄弱すぎるとひが氏なんかよりも罪深いぞ。
特に線の交差するところは重要じゃないか?
SQLのあまりにもな例といい結構ファウラータソも危ういと感じる。
0418デフォルトの名無しさんNGNG
>>417

いいんだけど、ファイル名が怪しい
0419デフォルトの名無しさんNGNG
もうね、GoF以上にソフトウェア開発の実装におけるパターン化をやろうとしても、
ムリだってことがハッキリしたと思う。

これ以上ソフトウェア開発を効率化しようとするなら、
例えば業務会計ソフトなら、会計ソフトをプラグインで柔軟に変更可能にするとか、
そのAPIをソースコードごと公開するとか、
そういう、実装が伴ったものになると思う。
EJBのようなアプリケーション固有の実装を伴わないフレームワークは必要無い。
0420デフォルトの名無しさんNGNG
Enterprise Applicationは個々に異なる、という前提があるので、残念。
0421デフォルトの名無しさんNGNG
>>420
わからん
前提があるからどうなんだ?
0422デフォルトの名無しさんNGNG
>>419
DI + II まだー?
0423デフォルトの名無しさんNGNG
実装を共有しようとするのは現実的でなく、
フレームワークやパターンや開発手法を共有するしかない、ということ
0424デフォルトの名無しさんNGNG
>>423
PhotoshopやEclipseはどうなんだ?
プラグイン毎にソフト作り直すのが現実的なのだろうか

業務ソフトだってその考え方をもっと進めなきゃいかんと俺は思う
0425デフォルトの名無しさんNGNG
現実には、業務ソフトにまともなプラグイン機構を持ったソフトは
未だ存在しないから、せめてムダなフレームワークを使わず
ただシンプルに作り抜くことが、今できることなんだろうと思うけどね。
0426デフォルトの名無しさんNGNG
>>417
原文読め
自分がネタにマジレスってことに気付くから
0427デフォルトの名無しさんNGNG
>>424
ベースを作ればあとは付加機能でしかないという分野以外で、同じようにプラグインの仕組みを考えるのはナンセンスだと思うが。
やっても意味がないという結論がでるようなことがらについて考えを進めても意味がなさげ。
0428デフォルトの名無しさんNGNG
ひがさんのblog
> 手を変え、品を変え、オブジェクト指向は説明されてきましたが、情況はそれほど好転しているように思えません。

続く文章も、手を変え品を変えたオブジェクト指向の説明に見えるので、状況がそれほど好転しない気がする。
■ このスレッドは過去ログ倉庫に格納されています