1 :
デフォルトの名無しさん :
04/12/12 23:37:01
前スレより
>960 名前:デフォルトの名無しさん [sage] :2004/12/12(日) 18:38:39
>
>>957 >むしろ、くーすは上流工程に責務を集中させるから、XP 等に比べて
>その部分の取替え可能性に関するリスクが高い、という見方もあると思うが。
XPについては、俺に仕事くれてる人が採用したがってるんで検討してみたんだけど、
検討してみた結果、この手法は実装フェーズ以降にしか使えないと思った。
というのは、XPでストーリーをタスクに分割する前に、まずはシステム全体のアーキテクチャ、
つまりシステムを何層に分割するのかとか、例外の扱いはどうするのかとか、ログはどうとるのか
とか、全体に及ぶような設計を先にして「今回はこういうルールでやってください」って言っとかないと、
なんだか訳の分からない実装の集合体ができそうに思う。まったく統一感がなくてメンテナンスが
しにくい。
だから、XPでもやっぱり上流行程って必要なんじゃないかな。
で思ったのだが、 くーすの流れで言うところの、ロバストネス解析あたりまでを設計チームでやり
こんで、シーケンス図を書くあたりからXPの手法を導入ってしたら案外うまくいくんじゃないだろう
か。業務フロー図一枚くらいをストーリーにして、あとはタスクに分割して実装していくって感じで。
ま、御託は資源の排他制御が出来るようになってから、な。
>>3 > だから、XPでもやっぱり上流行程って必要なんじゃないかな。
「アジャイルと規律」を読め。その問題が詳細に検討されてるから。
# 関係ないが、DIスレの213-214ゴールデンコンビを思い出す…。
フロッピーディスクドライブ
しょせんそのレベルか。
(・∀・)ハイーキョ
はおゆんらいらー!
ほっちゃーん! ほ、ほーっ、ホアアーッ!! ホアーッ!!
うぉーあいにーめん!
IKEMEN JAPAN !!!
14 :
デフォルトの名無しさん :04/12/14 19:11:25
前スレ
>>933 さんの提案は残念ながらひがさんの目にとまらなかったようですね。
僕も欲しいし、賛同者
>>934 さんもいるみたいなので、
ちょっとコード書いてMLに流してみます。
前スレ934 > update文で「このフィールドひとつだけ更新したい」ってときにもSQL文を書かなくてすむ。 これってむしろS2Dao側で属性ごとにダーティーチェックして対応してくれるのが 正しい気がするんだが。現状のS2Daoってそういうことやってないの? 教えて君でスマソ。
いやマジで、「このカラムにシステム時刻を入れたいだけなんだよ」とか「このカラムの フラグをオンにしたいだけなんだよ」とかいうときに、いちいちSQLファイル作って、 ARGSアノテーション書いてってのが邪魔臭い。 別に対した手間じゃないんだろうけど、でも全カラム一斉UPDATEがわずか一行で 定義出来るのに、それより短いSQL文のためにSQLファイルをつくんのかよ....orz という気分になってしまう。
>>16 もしかして1項目変更するのが全項目変更するより簡単な処理だと思ってるの?
今回のスレは「その3」の3が全角になったんだね。
>>17 確かにクエリを組み立てる側の制御は組み立てるクエリの長さで決まるわけじゃないからねえ。
だから、ARGSアノテーションとかが必要になるんだと思うんだけど。
16は仕組みをあまり分からず書いているのかもしれないけど、
そういうユーザーの要望の中から対応すべき要望を抽出して対応することによって
ツールとかは熟成されていくんだと思うよ。
くだらなくても要望出さなかったら作者の必要な機能ばかりのツールになってしまうからね。
S2Daoって、BLOB型とかの値は取り出せないの?
>>16 の「大した手間じゃない」はS2側の内部処理ではなくて、
自分自身の「短いSQL文のためにSQLファイルを作る」ことを指してるんじゃないのかな?
まぁ、いちいち噛み付かずに
>>17 さんの言う通り、
ちょっとづつでも要望出してちょっとづつでも良いツールになっていってもらおうよ。
僕は一応、ソースのどの辺いじればよいのか調べています。
>>20 >
>>16 の「大した手間じゃない」はS2側の内部処理ではなくて、
>自分自身の「短いSQL文のためにSQLファイルを作る」ことを指してるんじゃないのかな?
そうです。
短いSQLのためにSQLファイルを作るのが面倒だという話です。
S2Daoは「UPDATE テーブル SET PK以外のカラム全部 WHERE PK」ってなSQLを自動生成
してくれるけど、「PK以外のカラム全部」を特定のカラムだけにするのにSQLファイルを書く
のがね。
SQLを一行書いたファイルを作るだけなんだけど、「PK以外のカラム全部」のカラムが20個
だったりしても長いSQLが自動生成できるのと比べてしまうと、たった一つのカラムのために
SQLファイルを書くのが面倒に感じまして。
update_PERSISTENT_COLUMNS = "hoge"; だって。よかったじゃん。 tp://d.hatena.ne.jp/higayasuo/20041215
間に合わなかった_| ̄|○ つか、対応してくれるんだ! こういうところもS2が好きな理由です。
ごめん、間違えた。
>>23 は漏れ。
騙った訳じゃないのでゆるしてちょ。
いやゆるさん!
。・゚・(ノД`)・゚・。ウワーン
見てるとは思うけど、お礼コメントしてきたらよいかも。
お礼だけのコメントは情報量ないから止めた方がよくないか? お礼がズラズラと並んでる図は信者臭くてダサいし
お礼と一緒に喧嘩も売るとか
趣味悪いなー
「ひがたん、乙」とだけ書いてくればいいのではないか?
とっておきのエロ画像とか貼るのがいいのではないか?
蛯○友里の愛顧らなどがよろしいかと。
35 :
デフォルトの名無しさん :04/12/16 09:30:25
AOPをフルに使用したコラが良いと思われ。
最近大きな変化は無いね。 早く、事例集を作らないかなあ。 実績がはっきりしてナイト採用しないところもあると思うんだけどねぇ。
>>37 ネタ?
MLでの導入事例集作成のやり取りのことですか?
ひがさん仕事はやー。ちょっと追いかけるの休んでると、どんどん機能がリリースされてく。 つーかおれ、未だにAOPの使い方がよくわかんね。コンテナ機能だけでも便利だからいいけどさ。 orz
AOPつかわねーと意味ねーじゃん。
AOP使わないとS2Dao使えないし、自動トランザクション制御使えないし、 モックオブジェクト使えないし、デリゲートも自動でできないんだぞ。だめじゃん。
>>39 とりあえず、ドキュメントどおりにdiconファイルに記述すればOK
マジレスすると自分で考えてAOPを使うのが難しいってことだろ。 考えながら付属のやつを使ってりゃそのうちinterceptorを自作するようになるさ。
44 :
デフォルトの名無しさん :04/12/17 21:38:25
http://d.hatena.ne.jp/higayasuo/20041217#1103278289 > SQLを自動生成したり、Beanからバインド変数を組み立てたりという仕事は、
> これまで、BeanMetaDataにさせてました。データのことを最も知ってるクラスに
> 振る舞いを持たせるのは、自然なことだと思っていたためです。
>
> しかし、S2Daoに仕様の追加があるたびに、BeanMetaDataに変更が入るのです。
> メタ情報は全く変更されていないのにもかかわらず。
SQLの自動生成ロジックの変更によって、メタ情報に変更がないにもかかわらず、
BeanMetaDataに変更が入ることのどこが問題なのでしょうか?
バインド変数組み立てロジックの変更によって、メタ情報の変更がないにもかかわらず、
BeanMetaDataに変更が入ることのどこが問題なのでしょうか?
どちらも何の問題もないように思いますが。
45 :
デフォルトの名無しさん :04/12/17 21:53:31
> これは、BeanMetaDataに多くの責任を持たせていたためです。 > SQLを自動生成したり、Beanからバインド変数を組み立てたり > という役割は、メタデータを管理するというBeanMetaDataの > 本来の役割とは異なることなので、別なクラスに任せるべき > だったのです。 それは単に責務の割り当て方が適当でなかったために > 本来の役割とは異なることなので、別なクラスに任せるべき > だったのです。 と感じるのだと思いますが。 例えば BeanSchema.toXML のようなメソッドはBeanMetaDataクラスに持たせるべき責務のように 思えます。
46 :
デフォルトの名無しさん :04/12/17 21:55:32
> 振る舞いを役割ごとに分割する、言い方を変えると振る舞いを > モデリングするという考えは、重要ながらかなり見落とされている > ことが多いのではないでしょうか。 よくわからないので、 具体的な例を挙げていただけませんか?
SQL自動生成を実行するSQLFactoryみたいなオブジェクトがあって、 メソッドに引数を渡すとSQLを生成して返すとか、そういう構造である べきだった、という話じゃないの? で、生成したSQLもオプジェクトとしてラッピングされてて、execute()とか するとSQLが実行されるとか、こう、役割を細かくわけていくということだろう。 その点についてはおれは反対する要素はないぞ。
48 :
デフォルトの名無しさん :04/12/17 22:13:39
>>47 > SQL自動生成を実行するSQLFactoryみたいなオブジェクトがあって、
> メソッドに引数を渡すとSQLを生成して返すとか、そういう構造である
> べきだった、という話じゃないの?
>
> で、生成したSQLもオプジェクトとしてラッピングされてて、execute()とか
> するとSQLが実行されるとか、こう、役割を細かくわけていくということだろう。
うんにゃ、
ひがさんは BeanMetaDataには振る舞いを持たせるべきではない、と言っているよ。
>>46 ここではなくてblogのコメントに書いていただけませんか?
50 :
デフォルトの名無しさん :04/12/17 22:33:40
> 永続化されるデータに業務に応じた振る舞いを持たせるというのは、 > 1つのクラスに複数の役割を持たせることになります。 なりません。 データは何一つサービスを提供しません。 よって、データは責務を持ちません。
そりゃおかしいだろう。
S2Daoのソース読んだわけじゃないから詳しいことは分からんが、
少なくとも
>>45 には激しく同意。
Object指向としての理想的なモデリングは、SwingとかEclipseなんかが
参考になるとは思うんだが、その中にデータを表すってだけの
構造体みたいなクラスは見当たらんよね。ま、ドメインが違うじゃんって
いわれればそれまでだけど。
くーすはどうも退化としか思えないんだよね。
目先のお手軽さや便利さは得られるかも知れないけど、"オブジェクト"としての
柔軟性や多態性なんかが損なわれてる気がする。
>>51 目先のお手軽さや便利さを求めちゃ何故まずいんだろう?
それで、スキルない人間使って生産性が上がって利益が上げられるんだったらいいと思うんだけどなあ。
オブジェクト指向に精通した人間じゃなければ設計できない・開発できないということだと会社として利益を上げにくいんだよね。
お客様の要望を満たして保守も容易にできるようにできていれば、正しいオブジェクト指向にこだわる必要はないんじゃないの?
55 :
デフォルトの名無しさん :04/12/17 22:49:13
>>51 > くーすはどうも退化としか思えないんだよね。
> 目先のお手軽さや便利さは得られるかも知れないけど、"オブジェクト"としての
> 柔軟性や多態性なんかが損なわれてる気がする。
同感です。
結局は、前々スレの686の一言につきると思う。
>686
> くーすは、素人だらけの現場でいかに一定の品質をキープするかという点
> (予測可能性?)にフォーカスした、いわば極めて後ろ向きな方法論であって、
> 決して根本的な工数の削減やメンテナビリティにはフォーカスしていないと思う。
> Transaction Scriptの欠点は単価安い下っ端ブルートフォース(+中国?)で
> カバー、的な。
ヒガ氏はああいう書き込みで燃料投下して そのBlogに対する書き込みをニヤニヤして読んでると思われ。 必死で書き込んでる奴らは ヒガ氏の掌で踊らされているだけだということを 自覚したほうがいいな(藁
44=46=48!=54ですが。
>>54 >
>>49 > そんな度胸ありません!
そのとおりですw
>>55 みなさんはいい部下をお持ちのようですね。
うちは素人だらけなので後ろ向きな方法論で結果を出すしかありません。
しかも、各自で技術力を向上させようとする前向きさも、センスもない連中が山ほどいます。まじで皆さんがうらやましいです。
>>58 誤 後ろ向きな方法論で結果を出すしかありません
正 後ろ向きな方法論を利用してでも結果を出すしかありません
...ま、大してかわらねーか。
60 :
デフォルトの名無しさん :04/12/17 23:01:04
>>53 >
>>51 > 目先のお手軽さや便利さを求めちゃ何故まずいんだろう?
>
> それで、スキルない人間使って生産性が上がって利益が上げられるんだったらいいと思うんだけどなあ。
>
> オブジェクト指向に精通した人間じゃなければ設計できない・開発できないということだと会社として利益を上げにくいんだよね。
>
> お客様の要望を満たして保守も容易にできるようにできていれば、正しいオブジェクト指向にこだわる必要はないんじゃないの?
それについては否定はしないけど、それはビジネスの話。
技術者ならくーすの技術面について話をしようぜ。
技術の世界でスキルのない人間使ってそれなりの成果物をあげることは、かなり 技術者よりの話題だと思うんだが。 まあみんな分かってるとは思うけど、くーすでいっていることは、すげえ新しいことでは なくて、いままでビジネスの世界で生きてきた人が経験として得てきた知識と言うかノウハウ (ともかくこの低スキルどもにコーディングをさせてこの仕事仕上げないといけないんだよ!、 とかいうやつ)だよな。それを手続きとしてまとめたもんだ。 で、ノウハウを手続きとしてまとめ上げることには俺は賛成だ。おれたちが「デザインパターン」と 呼んでるものだって、いままでいろんな技術者が経験的に獲得してきたものを文書化して、名前 づけしたもんなんだし。
ひがさんの「BeanMetaDataには振る舞いを持たせるべきではない」という方針は 現場の事情で、その対価としてOOP的な「柔軟性や多態性なんかは損なわれて いる」という結論でいいんですか?本当に? アホでも素人でも妄想でも語れる現場話にしたい人は置いとくとして、エンジニア の人達はこの結論でいいの?本当に?
>>61 >で、ノウハウを手続きとしてまとめ上げることには俺は賛成だ。おれたちが「デザインパターン」と
>呼んでるものだって、いままでいろんな技術者が経験的に獲得してきたものを文書化して、名前
>づけしたもんなんだし。
それ自体は否定しないし、これらをまとめあげようとするひがさんは偉大だと思う。
ただ、的外れな指摘で「レガシーなオブジェクト指向」とかいうのはやめて欲しい。すごく迷惑。
要するに、 ヒガ氏の提唱しているのはビジネス的な視点での方法論で、 ここで書き込んでる人たちはビジネス的は視点としては理解はできるものの 技術的な視点で話をしたいと。 それじゃ、話が合うわけねーじゃん。 つーか、なんでそんな人たちがヒガ氏やらくーすやらに興味持ってるのかさっぱりわからん。
>>60 くーすの技術面?
くーす語るんだったら技術面じゃなくて
ビジネスでの有効性だとかそういう話じゃないの?
とりあえずハッキリしてるのは、ヒガ氏の実装で得られる利点と、損なわれる難点を 技術的に語れる人間はこのスレには居ないって事だ。 それはそれで構わないと思う。そこは所詮2ちゃんだし? 重要なのは、このスレがヒガ氏へのQとして機能し得るか否かって事だ。 何が言いたいかって言うと ヒガ様、手隙の時で構いませんので、その辺をBLOGの方で技術的に解説よろ って事だw
>>64 > 要するに、
> ヒガ氏の提唱しているのはビジネス的な視点での方法論で、
くーすの言う、DTOとかStatelessBusinessロジックはビジネスの話だと。
はあ、そうですか。
って、んなわけねーだろ。
>>62 いや、ひがさんの日記は、BeanMetaDataに振る舞いを「もたせるべきではない」という
話ではないだろ。BeanMetaDataはメタデータの管理(に直結した振る舞い)だけをすべき
だったのに、SQL自動生成とか関係ない振る舞いを持たせてしまった、という話だろ。
振る舞いとデータを分離するといってるんじゃなくて、「データにやまほど振る舞いをつけた
くなったとき、その振る舞いがデータと直結してるかどうかちょっと考えてみろ」っていって
るんだと思うけど。
まあ俺が思うのは、データに直結してないけど、そのデータを利用する機能を山ほど搭載
したFatなクラス設計(モデリング?)というは、「レガシー」なんではなくて、そんなものは
始めからオブジェクト指向の原則に反してるだろ、ということだな。
それをレガシーだと言うなら、間違う人が多すぎたってことだろう。たしかにそこの判断は
かなり微妙だし、俺も正直言って間違うよ。
データと振る舞いをまとめるときに、「データと直結した振る舞いを持たせる」「データをつかった
ほげほげは別にする」というのはオブジェクト指向的には正しい判断じゃないか?
>>67 ああ、それ自体は技術の話題だ。
でもそういうふうにする理由の大部分は、ビジネス的な要因であって、
技術的に美しいからとかオブジェクト指向の概念的に美しいから、とかではないと思う。
70 :
デフォルトの名無しさん :04/12/17 23:42:39
>>69 >
>>67 > ああ、それ自体は技術の話題だ。
> でもそういうふうにする理由の大部分は、ビジネス的な要因であって、
> 技術的に美しいからとかオブジェクト指向の概念的に美しいから、とかではないと思う。
もしそうっだったとしたら、なぜひがさんは
従来のオブジェクト指向を「レガシー」と言って技術的に批判するの?
おれは言ってる事はともかくとして、「レガシー」という表現を使ったことについてはおかしいと思う。 ここでレガシーと言われているものって、レガシーなんじゃなくて、そんなのはもともとオブジェクト指向的に 間違ってるんだし。
>>66 いや、別にくーすに従わなきゃS2使ってバリバリにOOPなシステム作ることは
可能なわけよ。だからひが氏の実装自体には問題ない。むしろ素晴らしいと思うよ。
問題なのはくーすだよ。ただ、心配してるだけなんだけどね。
マジョリティとしての技術の方向性っちゅーのかな。それがこの先どうなっちゃうのか、とか、
くーすによってさらに加速されるであろう量産型低スキルエンジニア達の増産とか、
そいつらと一緒に、これからも仕事していかなきゃならない自分の身の振り方とかを。
ビジネス的にはそれでいいだろうけどさ、長期的に見て、まず「人」は育たないよな。
だから前々スレ686の一言に尽きるって結論になっちゃうんだけど。
ま、「レガシー」って言っちゃったのは失言でしたってこった。
どれだけ多くの人たちがあなたのBlogをチェックしてんのか忘れないでね。>>ひが氏
しかしまあ、正直言って「importって何の意味があるんですか」「java.langはimportしなくちゃ いけないんですか」とか聞く奴が毎年量産されていることを考えると、そいつらと一緒に仕事 していく手法を身につけとかないといけないってのは切実な問題かもしれん。 だって毎年量産されるんだし...
いやぁ、くーすはともかくとして、Seasarは明らかにシステム構築の敷居を高くしているよ。 いろいろ覚えることあって大変だ。何がどういう役割を持っていてどう扱うのが正しいのか、 原作者にしか分からない理論(しかも、漏れ的には相当あやしい)を理解するのに何年かかるんだ。 そして覚えてそれで一体何になるのか。謎は深まる。
何年って、おれは使い始めて1ヶ月後にはチームの連中に説明してたが....
くーす周辺の「お客様」とか「現場」は、目の前の客と現場に部分最適化して、 将来の客と現場に対する思考を停止するためのエクスキューズ用語。
さらにチームの連中は「Struts覚えるより仕組みが簡単ですね」とか言ってたが....
78 :
デフォルトの名無しさん :04/12/18 00:14:24
独自の複雑なフレームワークを駆使した開発方法を 示して難解フレームワーク固有の知識で壁を構築するっていうのは、 よく見かける手ではあるけどね。 シンプルな解決法は他にいくらでもあるのに。 本当にいいものは分かってもらおうという迫力が文章やコードで示されてる のだけど、Seasarは・・・、まぁ、しょうがないな。
>>68 なんか凄い自信家ですねw
>>それをレガシーだと言うなら、間違う人が多すぎたってことだろう。たしかにそこの判断は
>>かなり微妙だし、俺も正直言って間違うよ。
この辺に自惚れさが見え隠れしているように感じられるのは気のせいでしょうか?
>>77 そうだな。Strutsよりはマシかもしれん。
Strutsも大いなるネタの代表例でさ、あれよりいいってうのは、
果たして。大差は無いように思う。
なんかわからんが、Seasarはファクトリ+AOPだし(というかDIコンテナは大体そうだわな)、 くーすはWeb開発ノウハウの集合体であって、別に独自のフレームワークや固有の知識だと 思った事ないんだが。むしろ「あーたしかにそんな感じでやってるよ」ってくらいで。 逆にその「まとめよう」というところに価値があると思ってる。
すごい勢いでレスがついてますね。 みんな比嘉さんにもてあそばれてるなあ。 しかし、「レガシー」って括られるとそりゃ頭にきますよね。 みんな最先端を走ってるつもりなんですからねえ。 そう書けばここで盛り上がるのわかって書いてるのに 予想通りの盛り上がりを見せてるのはちょっと笑えるね。 しかし、Blogで2ちゃんのスレに煽りを入れて、 こんなにたくさんの人が踊らされるなんて、さすが比嘉さん。
むしろひが氏のネタの半端さがレスを呼んでるんじゃないの。 DIスレの213=332と同様。厨がいたほうが一見盛り上がってるように見える罠。
>>82 そうか。やっぱり、ネタだったのか。
くそー、悔しい。
まぁ、そりゃそうか。
でも、本当にイカンのはマジなトーンで
DIコンテナORマッピングAOPとか言ってるやつらだぞ。
思わず反応してしまう・・・
まあ自分の主張を目立つように書こうとしてつっぱしり過ぎたってとこだろう。 もし本気でレガシーって思って書いてたら、S2自体の価値が疑われかねないので、 調子のって突っ走ってしまったと思いたいね。 まあ一方で、データと振る舞いの組み合わせ方は微妙な判断が必要な問題だ と思う。その判断を卒業したてのPGに任せたくはないが、やらせないと低能の ままの奴と付き合い続けなければいけないというジレンマに...
>>84 ほんとにもてあそんぶためのネタとしてレガシーなんて言ったんだとしたら、S2に対する指示を
失いかねないネタだと思うぞ。
おれは勢い余ったんだと思うけどね。
指示=支持
とりあえず呼んどくか。 ☆ ティン ☆ ティン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・)< ヒガタソ消火まだー? \_/⊂ ⊂_)_ \_______ / ̄ ̄ ̄ ̄ ̄ ̄ ̄/| |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| | .|/ DIスレをリスペクトして「ティン」だ。
結論:やっぱEJB。
>>89 EJBが実は最も壮大なネタで、
それよりマシなものなら「漏れにも作れる!」
と思う香具師、たくさんいるんじゃないかね。
しかし、EJBよりマシなものできたところで、
EJB自体がネタだから、どっちにしろネタなのだ。
似た方向を目指しててそれぞれ一長一短なモノなら、 メジャーな手法を使うのは当然だよな。
ふ〜ん
まあ、Java自体がネタだからね。
>>82 レガシーっていってるのは、1つのクラスが役割を複数持ってる
ような設計のことでしょう。
これまでのオブジェクト指向がすべてレガシーっていってるわけじゃない。
ナイーブって言い方に変わってるね。
ダイコン書くのだるい。。。ってか、ファイルが分散するのって 正直どう思ってるんだろう。S2Struts使うとStrutsConfとダイコンも 書かなきゃいけないし。 特に全体を追おうとするときって、目茶目茶だるい。EclipseでCtrl+クラス で実装開いてくれるけど、インターフェース使ってると インターフェース開くから、ダイコン見て実態クラス見てって。。。 書いてる本人は分かるから良いんだろうけどさ。 あと、お客に技術トランスファーしなきゃいけないのに Seaser使っちゃって(一緒にやってる人がね)、おいおい お客さん(IT企業じゃないないシステム課の人) に分かるように説明できるのーって感じ。 やっぱりね、Seaserに限った事じゃないけど楽になるだろうって思って 使うのは、全体的に見て楽になるかを見ないといかんね。
でも >>この「ナイーブ」は当然 (?) without EJB のアレ (笑) です.幼稚・稚拙というニュアンス. だそうですから。
DIっつっても、DIで作られたクラス使う分にはただのファクトリなんだし 対して技術的に難しい概念ってことはないと思うが。
>>97 >技術的に難しい概念ってことはないと思うが。
OOで一回でも作った事がある人は難しいとは思わんとだろうけど
お客はそうじゃないし。
DBAがプログラム中にSQLがあるのとO/Rマッパ使ってるときとで
インパクトが違うのとにてるんでないかなーと。
>>95 実装を意識する必要はないというやり方ですからね。
気にするのは、インターフェースであり実装ではない。
実装はブラックボックスで良いと思う。
100 :
95 :04/12/18 17:41:08
>>99 じゃあ、あるデータ項目を追加したいって場合は
実装はいじらせないって事?
>>95 プロジェクトで役割を明確にしろよ。
みんながみんな実装のロジック見るわけじゃないだろ。
なんのためのインターフェースだと思ってる?
てか、Saesarをどうのこうの言う以前にOO開発できないでしょ。
そんな考え方じゃ。
ソフトウェア開発の基本が分かってない人↑
設計は絶対に変えない。これがくーす。
>>102 基本?
それってあんたのMY RULEのこと?
ここは貧血症君とレガシー君が互いに罵倒し合うスレですか。 そうですか。
>>107 そうですよ。
傍観者は書き込まないでください。
>>95 「interface開く 〜 interfaceのタイプ階層を見て実装クラスを開く」
って2段階になるのがうざいよね。
IDE側に、interface名にカーソルあわせて「実装クラスを開く」
みたいな機能が欲しくなる時がある。実装クラスが一つの場合は
そのまま実装クラスのソースを開き、複数ある場合はドロップダウンで
選択とか。
ここ読んでておもうのは、もしかして本当にモデルオブジェクト(ここで想定しているのは、 S2Daoが返す、テーブルに対応したBeanとか)にいっさい振る舞いを持たせなくて、 setterとgetter以外あってはいけないとか思ってる人が多いのか。 そりゃ貧血症どころか構造体にすぎんじゃないか。 おれはモデルにほとんど機能は実装しないが、それでもそのモデルに直接関わる機能 (モデル内のインスタンス・フィールドだけで処理が片付いてしまうようなもの)はモデルに 実装するぞ。複数のモデルが絡んでくるようなものはサービスにまわす。貧血症ぎみの クラスは多いが、それでも構造体よりはましだと思う。
>>110 前スレの後半で俺も似たようなこと言ったんだけど、
構造体として使うのがくーすらしいよ。
つーかドメインオブジェクトが何かって事をそもそも理解されてないようだから、
このスレの"ナイーブOO指向好き"と論点が噛み合わないんだよな。
複数業務にまたがるロジックがあるからこそドメインオブジェクトが存在してるんだろうに。
あれだけ、でかでかともっともらしいことを書くんなら、せめてもうちょっと
OOについての理解を深めてからにしてもらいたい>>比嘉氏
ここはHDataSetのサポートをしてくれるスレじゃないんですか。 そうですか。
人が育たないって主張に対するレスポンスがないな
>>114 自分で勝手に育っていく奴以外はほっとけ。
そんなことに金かけてる時代じゃねーんだよ。
ま、あんまりたくさん育っても任せる仕事がとってこれないから
くーすみたいなのでできない奴をうまく使いつつ、
勝手に育った奴に仕事任せていけばいいんじゃない?
育たない奴はいつまでもプログラマ。か、別の業種で頑張ればいいんじゃないか?
一般的な会社組織ってピラミッド型になってて、
成長していくとピラミッドがでかくなってしまうよね?
でもピラミッドの上方(高給取り)の比率を高くしないように
ピラミッドの形を維持していかなければならないから、
実はみんなに育たれちゃうと困るんだよね。
(全体の人件費を抑えざるを得なくなってしまうから)
日本の高齢化社会の年齢構成みたいに高給の人間の比率が多い組織になると
収益率を上げていくのは大変だからね。
ドメインオブジェクトと永続オブジェクトを分ける話じゃないんですね。
サービス層はドメインオブジェクトじゃないのか? データアクセス層を純粋にデータアクセスだけに特化させることはOKな感じもする。 つまりDBからデータを取ってくる以外のロジックは存在しないただのBeanって感じで。
結局、エンティティBeanのショボイ奴か。
くーすは名前を返上すべし。 熟成とは縁のないファストフード作りのマニュアルじゃん。
121 :
デフォルトの名無しさん :04/12/19 05:13:06
http://d.hatena.ne.jp/higayasuo/20041218#1103335335 > 問題は、ドメインオブジェクトに業務ロジックを追加するのが、
> ナイーブかどうかということです。
>
> 私の経験からするとドメインオブジェクトが複数の業務で
> 使われるということは良くある話です。
> 複数の業務の業務ロジックを1つのドメインオブジェクトに
> 持たせるということは、単一責任の原則に違反しています。
> クラスを変更する理由が複数あるためです。
複数の業務の業務ロジックをドメインオブジェクトへ
持たせたとしても、単一責任の原則には違反しません。
「業務Aの機能と業務Bの機能をドメインオブジェクトDへ持たせている」
と考えると単一責任の原則に反しているように見えますが、
「ドメインオブジェクトDの機能を使って、業務Aの機能と業務Bの機能を実現している」
と考えれば、Dの変更理由は常にひとつです。
よって、
> 問題は、ドメインオブジェクトに業務ロジックを追加するのが、
> ナイーブかどうかということです。
は「ナイーブではありません」が結論。
# ちなみに「単一責任の原則」はアジャイルソフトウェア開発の奥義に
# 載ってます。いい本ですよ。
122 :
121=44 :04/12/19 05:28:10
べつに、DomainDrivenDesignを否定しなくてもいいとおもうんだけどね>ひがさん くーすのネーミングの理由を聞かれたakonが > 車輪の再発明ではなく、昔の道具でも使い方しだいで対応できるという心をこめてのネーミングです。 って言ってることですし、手続き型上等、TransactionScriptマンセーと開き直ればいーじゃない。
それにしても、オブジェクト指向じゃないくーすに(21世紀の手続き型なんでしょ)ナイーブなオブジェクト指向とか、レガシーなオブジェクト指向とか言われたくない。
>>114 >人が育たないって主張に対するレスポンスがないな
くーすは人を成長させるとことにフォーカスしてないからしょうがないよ。
人を成長させるってことなら、XPが一番だな。とくにペアプロが効果大。
>121 それは設計によるだろ。
くーすを好みそうな人たちのいる組織もたくさん思い当たる。 俺はそこがいやで転職したわけだが。
127 :
デフォルトの名無しさん :04/12/19 09:52:23
>>126 くーすやSeasarを使おうが使うまいが、
力のない会社にプロジェクトは失敗はついて回るでしょうし、
くーすやSeasarを使おうが使うまいが、
力ののある会社はそつなくプロジェクトを成功させるでしょうね。
128 :
95 :04/12/19 10:58:20
>>101 あー、開発段階の話じゃないのよ。
納品して、お客さんがちょっとカスタマイズしたいって場合ね。
もちろんサポート外になるのは、こっちもお客も同意済み。
>>115 さんきゅー
129 :
44 :04/12/19 11:32:42
http://d.hatena.ne.jp/higayasuo/20041218#1103335335 > 私がいっているのは、データと振る舞いをカプセル化するという
> 考えは、オブジェクト指向の重要なポイントですが、単純に
> データに振る舞いを追加するのではなく、そこに、クラスは
> 1つの役割だけを担うようにするという視点を必ず持つように
> しましょうということです。
これは分かるのですが、これを理由に
>役割ごとにクラスを分割するという観点で考えると、
>
> * 永続化されるデータを管理するクラス
> * データベースにアクセスするクラス
> * 業務ロジックを扱うクラス
> に別れるというのは、理にかなったことだということが
> 分かると思います。
という結論が導き出される理由が分かりません。
「データを管理」や「業務ロジックを扱う」などはクラスの役割とするには低レベルすぎますし、曖昧にすぎます。
以下はjunitのjavadocから抜き出したものですが、
-TestResult
A TestResult collects the results of executing a test case.
-TestSuite
A TestSuite is a Composite of Tests.
役割というのは上記のような粒度のものであって、データの管理や業務ロジックを扱う、などはその内に含まれるものです。それ単体で役割として考えるべきものではありません。
130 :
44 :04/12/19 11:36:47
>>127 よく分析麻痺、設計麻痺に陥ってるプロジェクトがあるけど
そういうプロジェクトにはくーすの割り切りの良さはスゴク効果的だと思うな。
>>121 その論理が成り立つなら、どんなクラスでも単一責任の原則に
違反することはない罠。
あるクラスの機能を使ってるといえば良いんだから。
>>127 は会議で話題をループさせるタイプだ。
間違いない。
>>95 S2ActionServletとかRegistActionClassPlugInを使えば
Actionに関しては全くダイコンを書かなくても大丈夫だよ?
ファイルの分散も気にならなくなり、
さらに金運も上がって女の子にもモテモテでウハウハです。
ActionにAOP適用してたりするとだめだけどね。
漏れの場合はその辺もRequestProcessorへのAOP適用で代用できたけど。
134 :
44 :04/12/19 19:50:54
>>134 あるオブジェクトZが、A, B, C, ..., Yの役割を持っていたとしても、
オブジェクトZの機能を使ってるんだといえば、
単一責任だというように読める。
業務Aのための機能と業務Bのための機能は、
やっぱり別々の役割で内科医。
おまいら話の粒度を揃えてから喋れ。 業務って、具体的に何をどうすることを想定しているのだ
トランザクションをコミットするまで。
就職してボーナスが出るまで
>>137 それじゃ大きすぎないかな。
支払を管理する支払テーブルがあったとして
支払に関連するものとして、
通常の買掛金に対する支払と
売掛金返金に伴う支払と2つあった時に、
トランザクション単位で考えれば業務は2つだけど
支払データ生成ロジックは共通で使いたいでしょ。
この場合、買掛金消込、売掛金返金、支払データ生成
の最低3つを業務と捉えるのが望ましいと思うんだけど。
トランザクションの数とは一致しない。
とはいえ、確かに殆どの場合は
トランザクションと一緒で問題ないかもね。
>140 ナイーブの意味もついでに調べてみよう
>>140 データと振る舞いが一緒だとオブジェクト指向だと思っている
単純なやつはけーん。
140じゃないけど、どの辺りを読むとそういう結論になるのか分からん。 157には同意
144 :
デフォルトの名無しさん :04/12/20 09:57:53
>>144 よーどんさんたちの言う
「ナイーブなオブジェクト指向」は知らないけど
普通に「ナイーブ」なオブジェクト指向って事なら
142の煽りのような意味で取りますわな。文脈からしてさ。
そういう意味でひがたんは使ってると読んだんだけど・・・
なにっ?もしかして、OOワールドでは
コードやヨードンが厳密に定義した言葉として
認識されてるのかっ?
147 :
44 :04/12/20 10:15:48
>>135 [ 業務A ]
ログイン機能 ---> use isExpired()
[ 業務B ]
社員給料計算機能 ---> use calculatePay
[ オブジェクトZ ]
------------
社員クラス
------------
+isExpired
+calculatePay
------------
この場合のオブジェクトZは単一責任の原則をやぶってると思う?
おれは思わないよ。
148 :
デフォルトの名無しさん :04/12/20 10:17:30
>>145 違う概念を同じ名前で表したら混乱を招くでしょ。
149 :
44 :04/12/20 10:27:09
>>145 厳密に定義されてなければ、同じ言葉を別の意味でつかっても混乱をまねかない、ってもんじゃないだろ。
>>147 >この場合のオブジェクトZは単一責任の原則をやぶってると思う?
システム領域の機能とビジネス領域の機能を一緒に持たせて単一責任も何も。
ナイーブすぎませんか?
152 :
44 :04/12/20 11:11:49
> オブジェクト指向について意見を書くことは、特にデータと > 振る舞いを1つにすることが、常に正しいとは限らないなんて > 書くことは、私にとってものすごくリスクの高い&なんのメリット > のないことです。 > > にもかかわらず、あえて書いているのは、正しくオブジェクト > 指向を実践しているように見えても、それが保守性の低下を招く > 場合もあるということを認識して欲しいということです。 これの例として > EntityDを使う新たな業務機能が追加されるたびにEntityDに > メソッドを追加していくと、EntityDは次第に複雑に > なってきます。 を挙げられているようですが、 EntityDが複雑になる原因は、データと振る舞いを1つにしたことではなく、機能の追加によって次第にEntityDの責務が単一でなくなっていくからです。 このような場合、「データと振る舞いを分割する」のような極端な方法に走らなくとも、EntityDが持つ責務に応じてExtract Classしてやればよいと思います。 > 薄いサービス層とリッチなドメインオブジェクトパターンは、 > 業務機能Aに仕様変更が入っても業務機能Bに仕様変更が入っても > EntityDを修正することになります。 業務Aから呼ばれようが、業務Bから呼ばれようが EntityDの持つ責務に変更が入ったのだからEntityDに修正が入るのは 当然だと思いますが。
153 :
44 :04/12/20 11:13:19
>>151 どちらがシステム領域で、どちらがビジネス領域?
両方ビジネス領域だと思いますが?
だから、「ナイーブなオブジェクト指向」じゃなくて 「ナイーブな」オブジェクト指向、って感じで普通に使ったんじゃないの?て話。 148も150も、ナイーブって言葉をはじめて聞いたんでしょうか? 俺、もっと普通に使う言葉だと思ってましたよ。 151がさりげなく使ってるように。 ばかばかしいからこの話やめな。 「ナイーブなオブジェクト指向」って言葉は テクニカルタームとして、ヨードン、コードが定義した内容でフィックスされてて ひが氏の使い方は間違い、で、俺の負け、それでいいよ、もう。
155 :
デフォルトの名無しさん :04/12/20 11:17:34
>>153 確かに、ログインした職責によって
権限を切り替えたりとか、ビジネス領域ですね。
ただ、認証クラスが処理した結果取得出来た属性(IDや職責)を
社員クラスにセットしてやるだけで後はいいじゃん、とか
給料計算を社員自身にさせるのはどうかなあ、とか
議論のある所だと思います。
正解がないだけに色々と人によってまちまちになっちゃうから
いっその事統一ルールで、データの振る舞いは
全部分けちゃえって話だと読みましたがどうでしょう。
>>155 前スレでその話は出たのです。
貧血症でも金欠症よりはましだという
はぶさんの言葉もありましたな。
別にS2使うからといってくーすを守らないといけないかというとそんなことはないし くーすが気に入ったからと言ってS2でないと駄目ってことでもないし。 そもそもどっちもマイナーなんだし放置でいいんじゃないのと思うのは俺だけか?
>>153 >両方ビジネス領域だと思いますが?
J2EEが提供するような低水準サービスと間違われたか? スマソ
情報システム以前に存在する概念(実体)とシステム化に伴う
概念とを一緒にするのがどうかってことなんだけど。
ところでシステムにログインできるのは社員だけ?
役員や派遣社員は? バイトを雇ったら?
漏れはログインに関わる機能が社員にあるのは、
例としても不適切すぎると思うが、
44氏はアダルト、で、俺の負け、それでいいよ、もう。
160 :
デフォルトの名無しさん :04/12/20 13:01:10
>>159 おっしゃることはわかりました。けど
you arent gonna need it.
今想定しているシステムでは
-社員のログイン
-社員の給料計算
しかやらないのでこれで十分ですw
必要になったらリファクタリングしましょう。
>>159 その話は面白いので、いいよもうで逃亡しないで
もっとやって下さい。
ログインが159の言う意味でのシステム領域か
ビジネス領域かは案件によって様々で
一概にはいえないと思いますけど、
後半は全く同意で御座居ます。
勝ち負けの争いだったのか。 ということは、傍観してる俺の勝ち。
163 :
デフォルトの名無しさん :04/12/20 16:50:57
164 :
44 :04/12/20 16:53:51
> 2chとのやりとりは、正直ブルーだったけど、44氏にありがとうといわれて、 > うれしかったです。これからも、よろしくお願いします。 そんなご丁寧にw こちらこそよろしくお願いします。
165 :
デフォルトの名無しさん :04/12/20 21:16:58
ナイーブな人だな。
>>147 これ実際のプロジェクトでやられたら激しくやだ
calculatePayはどう考えても社員クラスにもたすべきじゃない。
44は実務でこんな設計してんの?それとも実務を知らない学生さんなのか?
給料が社員自身のパーソナリティに強く依存している会社なんだよ。 月給=体重/(身長*身長) 万円 とか。
168 :
44 :04/12/20 23:38:05
>>166 >
>>147 > これ実際のプロジェクトでやられたら激しくやだ
> calculatePayはどう考えても社員クラスにもたすべきじゃない。
> 44は実務でこんな設計してんの?それとも実務を知らない学生さんなのか?
アジャイルソフトウェア開発の奥義の125Pから持ってきた例なので、
文句があるならロバート・C・マーティンへどうぞw
冗談はさておき、calculatePayを社員へ持たすべきじゃない理由を教えてほしいんだけど。
169 :
デフォルトの名無しさん :04/12/20 23:39:41
さむいねw>167
S2Dao使ってるんだけど、ログのレベルどうにかならないかな。 SQL文のログと、「トランザクションを〜」のログレベルが同じなのはどうかと思う。 SQL文って障害解析時に使うけど、「トランザクションを〜」が同じレベルで存在してると、ウザイ。
実運用時にSQLをログに吐いたりするもんなのか?
>>168 >アジャイルソフトウェア開発の奥義の125Pから持ってきた例なので、
>文句があるならロバート・C・マーティンへどうぞw
書いたのが誰であれ、自分が引用したんだから、自分で責任もって答えたらどうなの?
やっぱり学生さんなのか?
>冗談はさておき、calculatePayを社員へ持たすべきじゃない理由を教えてほしいんだけど。
1.社員の情報だけじゃ給与計算なんて出来ん
勤怠情報とか、税金とか、手当てとか、あと成果主義の会社だったら
会社の業績とかが給与計算に必要なわけで、calculatePayを社員にもたすと
社員とその他もろもろのあいだに依存関係が出来る。
2.calculatePayを社員にもたすと給与計算の変更があるたびに社員クラスを変更しなければならない
そのときに社員クラスにバグを作りこまないという保証がない。
3.calculatePayは月給を計算するんだとして、ボーナスはどうするのか、出張旅費清算はどうするのか?
社員クラスにcalculateボーナスメソッドを持たすとして、会社の制度が変更になってボーナスがなくなったらどうすんの?
>>168 やっぱり給与計算となると、
皆自分の経験したり勉強した
実務の事考えちゃうんだと思う。
そうなるとはぶ氏のいってるような事を
考えちゃって、違和感を感じる、と。
>160で、この例ではそこまで想定してないから
YAGNIだって書いてあるけども
簡略すぎて逆にイメージ湧かないんだと思います。
おっと、ちょうどそんなレスとかぶった。 >172 そんな訳で、このお題に関しては、そこまではYAGNIらしいんだ。
44に逆に質問 図形クラスがあったとして、saveメソッドを図形クラスに持たせるべきかどうか? 複数の保存形式をサポートしたい場合、saveメソッドを図形クラスに持たせた場合と 別のクラスに持たせる場合で修正の影響範囲ばどちらが小さいか? 、saveメソッドを別のクラスに持たせる場合 -データ構造を公開することにより、疎結合性を妨害 -ポリモーフィックな振る舞いを持てない -いくつかのデザインパターンの適用を妨げる(Compositeパターン等) というデメリットが実際に起こるかどうか? 44はくーすがどうたらいう前に、オブジェクト指向を勉強しなおした方がいいと思う。
>172 何度もすんません。せっかくだから自分でも考えてみた。 1はなるほど。 2は、社員クラスだろうと給与計算だろうと、変更のリスクは同じかなーと。 どちらかというと、そのリスクを回避するために、 テストがよりしやすいのはどっちかな?って話に持ってった方が吉だと思う。 3は、給与計算に出張旅費生産を組み込むのはちょっと仕事させすぎだと思う。 俺だったら経費の支払と給与計算は別にする。 仕訳も作ったりする場合、まったく別だしね。 最終的に銀行に振り込む情報を管理する機能(例えばFBデータを管理するクラスとか)や 給与明細を出力する機能はこれまた別じゃないか、と。 3はちょっと揚げ足気味かな、ごめん。でも気になったので。 ボーナスは、うーん、どうしよう。
170に賛成。 171は、障害出たとき、スタックトレースだけを頼りにしてるのか? SQLExceptionだったら、どうするんだ?SQL文なくても分かるのと、分からないのあるだろ。
> それを考えるには色々な情報が必要になって一概に言えないので > 簡略化する為に常にデータと処理を分離することにする。 MMRのキバヤシの口調に似てる。
ところではぶさんの日記みて、思ったんだが、直接S2とは関係ない、全般的な問題だとは 思うが、Strutsを使った時のDTO <--> ActionForm変換の手間をなんとかできんものか....
おれは逆に、「トランザクションを〜」のメッセージも障害解析時に使う、と 思ったんだけどどうだろうか。「あーここでロールバックしてるわ」とかそういう 情報になるしさ。
>>170 org.seasar.extension.jtaだけINFOにするとかで止めれるんじゃない?
どこに責任があるとかないとか考えて、モノによって処理が書いてある場所が微妙に違うのが一番困る。
それは無責任ですな。
184 :
44 :04/12/21 22:01:38
>>172 1と3のような要件の時にはcalculatePay持たすべきじゃないかもしれないけど、
「社員の給与は社員の役職によってのみ決まる」という場合には社員に持たせてもいいと思うんだけど、どう?
また、2の考えを押し進めると以下の(A)を(B)のようにするべきという話になると思うんだけど、こんなクラス、ちょっとありえないよね。
なので2の考え方は間違ってると考えます。
=== A ===
class Stack
def push( o )
...
def pop
...
end
=== B ===
class StackData
...
end
class StackPush
def push( stack_data, o )
...
end
class StackPop
def pop( stack_data )
...
end
185 :
44 :04/12/21 22:04:55
stackのpushとpopは対(つい)の操作。 calculatePayとisExpiredは無関係。 そんな例示でいったい誰を説得しようというのか。
>>184 > 役職によってのみ決まる
役職によって決まるんなら、役職に持たせれ。
188 :
44 :04/12/21 22:14:00
>>173 そっかー。
いろいろいい例を考えてはみたけど、漏れの貧弱な想像力ではいいサンプルが思い浮かばなかったんでつ orz
役職はクラスじゃないだろう。 給料の計算はPaymentCalculatorクラスにまとめるでどうよ。
190 :
44 :04/12/21 22:20:30
>>186 > stackのpushとpopは対(つい)の操作。
> calculatePayとisExpiredは無関係。
> そんな例示でいったい誰を説得しようというのか。
対の操作 = ひとつのロール、だよね。
172は、例えひとつのロールとして表すべきクラスでも、
エンバグの危険を避けるためにデータと処理を分けるべき、と言っていると思ってるんだけど。
もしそうじゃなかったとしたら、172の2の反論自体無効だね。
だって、おれは複数のロールを持つクラスをロールごとに分割することには賛成なんだもん。
>>189 > 役職はクラスじゃないだろう。
なぜ?
役職によって違うなら、役職ごとに違う処理を役職ごとに実装するのはありだと思うが。
192 :
デフォルトの名無しさん :04/12/21 22:58:56
>もしそうじゃなかったとしたら、172の2の反論自体無効だね。 >だって、おれは複数のロールを持つクラスをロールごとに分割することには賛成なんだもん。 calculatePayとisExpiredはひとつのロール? おれはどう考えても別々のロールだと思うんだけど。
193 :
44 :04/12/21 23:03:36
>>192 > calculatePayとisExpiredはひとつのロール?
> おれはどう考えても別々のロールだと思うんだけど。
コンテキストによる。
おれはインスタンス変数だけで処理が完結するなら、その動作は該当クラスに乗せても いいと思う。 あくまでモデルの話だけどさ。
>>193 じゃそんな例出すなよ。コンテキストによるなんていわれたら議論のしようがない。
おれはcalculatePayとisExpiredがひとつのロールになるコンテキストなんて現実にはほとんどありえないと思うが。
それに
>>147 で
>この場合のオブジェクトZは単一責任の原則をやぶってると思う?
>おれは思わないよ。
ていってるのはなんなんだ?これを見たら普通44はcalculatePayとisExpiredがひとつのロール
だと考えてると思うんじゃない?
役職はStateパターンにして、社員にくっつければ?
> 役職はStateパターンにして、社員にくっつければ? なんでも適当に言えばいいってもんじゃないぞ
199 :
デフォルトの名無しさん :04/12/22 06:30:10
>>198 いや、そんなに悪くないんじゃない?
俺の場合、役職に関する処理が増えた場合はそれを採用するかも。
昇進したら役職Stateを取り替えるだけ。 ある役職の処理が変わっても、社員や他の役職のソース修正しなくて済む。 けっこう良かったですよ。
>>200 役職や職責でstateパターンってまだ試した事無いんだけど
どうも永続化が、って逆か、DBから読み込んで
Entityを生成する時が面倒な気が、ぼんやりとするんです。
どうでした?俺が判ってないだけかなー。
役職は状態遷移じゃないだろう。このスレ大丈夫か?
現実世界では役職と状態遷移は違うものでしょうけども 197の提案は、同じ設計パターンが使えませんかねって話なので 202は反論になってないです。 ファウラーに、在庫推移は複式簿記で管理しないだろ、大丈夫かお前? といってるようなもんじゃないでしょうか。 もうちょっとダメな理由を詳しくよろしく。
>>202 デザインパターンはマニュアル思考しかできない人間を生産してしまう
などというトンチキな批判がうまれる原因w
>>203 処理中心になってしまうかもしれないけど、考え方としてはStrategyパターンで行ったほうが素直なのではないでしょうか?
やっぱり、役職は状態ではないと思う。
話が戻ってしまうかもしれないが・・
207 :
デフォルトの名無しさん :04/12/22 14:15:34
状態は列挙のうち一つしかもてない。役職は複数もてる(もしくは持たない)ことが一般的。 役職はロール(というオブジェクト)の一種。 組織の規程は、ロールに対して責務を割り当てる。けして個人や部署じゃない。これはビジネスルール。 個人や部署はパーティとしてまとめられる。 パーティはN個のロールを持てる。 組織の規程は、パーティへのロールの割り当て方について制約を課す。これもビジネスルール。
208 :
デフォルトの名無しさん :04/12/22 15:53:55
GOFとかちゃんと読んでるのか、おまえら
209 :
デフォルトの名無しさん :04/12/22 15:56:50
DIとかくーすに話を戻しましょう。
210 :
デフォルトの名無しさん :04/12/22 17:39:41
なんで? もう語ることないじゃん。 手続き型マンセー、Transaction Script上等って結論じゃなかったか?
でもSQLだけは勘弁な
エンティティの責任は、データを保持することなので、それ以上の責任を押し付けてはいけません。
給料が社員によって決まるとしても、社員には給料を決める権限などないのです。 給料計算は、給料計算担当者が。
>211はコング
216 :
デフォルトの名無しさん :04/12/23 01:39:27
>>213 社員は
-自分の役職
-役職からの給与算出方法
のみを知っていれば「権限」などなくても給与計算できます。
よって給与計算担当者は必要ありません。
もちろん、コンテキストによっては給与計算担当者が必要になることがあるかもしれないことは否定しませんが。
>>216 で、社員ひとりひとりに自分で給与計算させる会社があるの?
モデリングとは話が違うかもしれんけど、社員を渡せば給料が返ってくる、給与計算者がいるほうがいいと思うなぁ。
>「社員の給与は社員の役職によってのみ決まる」 この前提がそもそも非現実的で意味無し。
219 :
デフォルトの名無しさん :04/12/23 02:54:18
>>218 サンプルコードに何を求めてるんだろう?
現実的なコードじゃない? あした使えるコード。 あさって納品できるコード。
221 :
デフォルトの名無しさん :04/12/23 03:23:17
サンプルコードに関して、
>>216-217 のような話は無意味では。
「社員が持つべきケースのサンプル」
と、「計算担当者が持つべきケースのサンプル」があるだけ。
で、社員が持つべきケースなんてほとんどないから、意味がないというかサンプルとして有害じゃないの?
だれが、社員と給与で例を示したんだ? そいつのせいでスレ違いな書き込みばかりになってるじゃないか!
Seasarもくーすも、話題にするような目立った動きないから、いいんじゃない? ログ見ても、ナイーブがどうこうとか、某blogのアイドル写真がそろそろ邪魔くさいとか、あまりスレタイとは関係ないし。
>>156 の
> 正解がないだけに色々と人によってまちまちになっちゃうから
> いっその事統一ルールで、データの振る舞いは
> 全部分けちゃえって話だと読みましたがどうでしょう。
に賛成。
債務とか責任とかを考えて適切な場所に処理を記述とか考えていくと、いろいろなところにコードが分散してしまって、追えなくなってしまう。
DBのViewとかトリガーとかまで考えて適切な場所に処理を記述していくと、もう、どうしようもなくなる。
View やトリガーがあると追えない? 維持すべき設計文書を書いてないだけじゃないかな。
そうすると、一ヶ所に処理を記述したときには、そのソースだけを見ればよかったのが、設計文書とViewなりトリガーなりとJavaのソースと、いろいろなところを見ないといけなくなるわけですね。 しかも、設計文書とJavaソースとViewやトリガは、見るためのツールが違うので、煩雑に。 それだけ追うための手間が増えるわけですよ。 修正の場合も、設計文書を必ず修正する必要があって、この作業は徹底するのにかなりの労力を伴う。 単純に比較すれば、一ヶ所で記述した場合にくらべて、労力自体は増えると思うのですよ。 とくに、設計文書管理の労力。
で、問題はくーすでたびたび話題になってる、作業に関わる人のレベルが一定ではないということですね。 実際には、問題になるのは、レベルではなくて、考え方で。 むしろレベルが高い、考え方の違う人が書いたシステムが非常に追いにくくなるわけで。 システムを追う前に、どのような考え方で書かれたのかをプロファイリングしないといけない。
ドキュメントは非常に儚いので、アプリケーションの枝葉がドキュメントに依存するのは、問題があるんじゃないかと。 アプリケーション独自のロジックに関しては、ドキュメントがなくてもわかるようなものが理想で。 ただし、アプリケーションの骨格がドキュメントに依存するのは仕方がないと思う。 でも、アプリケーションの骨格は、揺るぎにくく共通化しやすいから、その部分をみんなで使えるようにしましょう、と。 で、そのアプリケーションの骨格のドキュメントが、くーすなのかなぁと思う。
シンプルなオブジェクトを複雑に組み合わせるのと、複雑なオブジェクトをシンプルに組み合わせるのと、どっちがいいんだろう?
232 :
デフォルトの名無しさん :04/12/24 10:23:03
>>226 > に賛成。
> 債務とか責任とかを考えて適切な場所に処理を記述とか考えていくと、いろいろなところにコードが分散してしまって、追えなくなってしまう。
> DBのViewとかトリガーとかまで考えて適切な場所に処理を記述していくと、もう、どうしようもなくなる。
債務(さいむ)じゃなくて責務(せきむ)な。
233 :
デフォルトの名無しさん :04/12/24 10:59:07
ドキュメントが儚い? 恥ずかしげも無くよく言えるな、おい。 XPerもどきの増殖にも困ったもんだ。
>>233 数度の変更を経たにもかかわらず、ちゃんと同期しているドキュメントをみたことがない。
俺も無い
233は、よほど躾の行き届いた組織にいるらしい。 うらやましいな。
ActionFormにインジェクションできますか?
見た事がないというか、出来た事がない_| ̄|○||| 先ず書く、そして打つという手順を守りさえすればそんなはずはない と上司は言うけれど・・・・・・・・ 短期で動くモノを差し出せとせっつかれて、それどころじゃないのです。 アジャイルって本当に素晴らしいモノなのかな?なんか週間連載を 抱えた漫画家みたいって言うか、納期が短い間隔で何回もやってく る感じで、昔よりも寧ろ過酷になってる様な気がするんですが・・・・・
239 :
デフォルトの名無しさん :04/12/24 13:20:43
ここはサンデープログラマのスレですか?
240 :
デフォルトの名無しさん :04/12/24 13:27:04
234はSCMをしないPRJにしかいたことがないようだな。 変更管理をきっちりすれば同期問題はおきないぞ。
>>240 だから、変更管理をきっちりしてる
プロジェクトで仕事した事がない、って話なんです。
ちっこい案件は別だけど。
242 :
デフォルトの名無しさん :04/12/24 14:06:25
>>241 PMがマヌケということか。同情するよ。
まぁ、悲観するな。そのうちまともなPRJに出会えるから。
>>240 構成管理をきっちりしないと、同期問題がおきるってことでしょ。
で、構成管理をきっちりすることは、組織的な成熟度が高くないといけない。
適用しやすい開発方法論を考えるのなら、
「こうやればうまく開発できます。でもドキュメントが大切なので、構成管理はきっちりやってください」
というものはどうかと思う。
構成管理がきっちりできるなら、他の能力も高いことが多いから、どうとでもやってくれという感じ。
___ . |(・∀・)| . | ̄ ̄ ̄ ジサクジエン王国 △ △l | __△|_.田 |△_____ |__|__門_|__|_____|_____
245 :
デフォルトの名無しさん :04/12/24 20:25:35
結局、適材適所 だからフレームワークは無用 プログラミングしよう
247 :
デフォルトの名無しさん :04/12/24 23:21:51
243は、ある程度の規模のPRJで構成管理をやらなければ開発は頓挫するという事実が理解できていないようだ。 まぁ、わからないでもないよ。最近は知ったかぶりのアジャイル莫迦が多すぎるからな。 JAVAWORLDも酷い記事を書くやつが増えたが、編集は何をやっているんだか。
ちなみにくーすの元ネタICONIXは、シーケンス図とかの中間成果物は 使い捨てで、ソースコードとの同期はやらないんだよね。
250 :
デフォルトの名無しさん :04/12/25 00:44:07
あれ? 捨てはロバストネス図じゃなかったっけ?
251 :
デフォルトの名無しさん :04/12/25 00:44:27
あれ? 捨てはロバストネス図じゃなかったっけ?
252 :
デフォルトの名無しさん :04/12/25 00:46:05
あれ?あれ?あれ?あれ?あれ?あれ?あれ? あれ?あれ?あれ?あれ?あれ?あれ?あれ? あれ?あれ?あれ?あれ?あれ?あれ?あれ? あれ?あれ?あれ?あれ?あれ?あれ?あれ? あれ?あれ?あれ?あれ?あれ?あれ?あれ?
元の話にもどすと、サーブレットフィルターやAOPやDBのトリガーなど、コードに現れない形で処理が分散するときには、ドキュメントを同期したにしても、ドキュメント自体が分散しがちで、結局わけがわからなくなりそう。 もちろん適切に使えばよいけど、一度乱用する時期を経ないと適切に使えないと思う。 プロジェクトの発言権を持った人の中に乱用する時期の人がいる可能性も高い。
>>254 そんな考えはレガシーで、ドメインモデルは複雑な
ロジックを記述するには向かない
という考えってどうよというのが先週からの話。
少しは流れを嫁。
>>255 つまり、すごく複雑ならドメインモデルでちょっと複雑ならトランザクションスクリプトっていってるのを、すごく複雑でもトランザクションスクリプトでってこと?
お父さんは貧血症
ドメインモデルを作っても貧血になっちゃうからよくない、と。
> 1.あるコンポーネントは自分で処理するか、自分よりも詳細なことを知っている別のコンポーネントに処理を任せる。 > 2.1を再帰的に繰り返す。 構造化じゃん。
>>260 メソッド分割なのかコンポーネント分割なのかという話だと思うよ。
ちなみにそれが構造化ならあらゆる処理がが構造化。
自分で処理するか他人に任せるしかないんだから。
ドメインモデルを適切に構築するのは難しいから、いっそのことトランザクションスクリプトでってこと? でも、トランザクションスクリプトじゃない、って書いてある。 ここに書いてあるのは、トランザクションスクリプトを構造化したらいいって話だよね? そしたら、コマンドパターンっぽく切り替えやすくなると。 構造化って、おおざっぱなものが細かいものを再帰的に内包するモデルのことだよね? 違うの?
デマルコの「構造化分析とシステム仕様」に、なんだかそのものズバリの図が書いてあるんだけど・・・。 で、Javaだと、ひとつの処理をひとつのオブジェクトに割り当てるといろいろ切り替えれて便利、っていう話だと思ったんだけど。
Javaの場合は関数ポインタもないし、言語仕様としてはメソッドはオブジェクトではないからクラスに追加したり切り替えたりできない。 ってことで、オブジェクトに持って切り替えれるようにしましょうってことでしょ? 切り替える用途やら規模によって、ストラテジーだとかコマンドとかステートとか、いろいろパターン名が変わるだけで。
>>262 たぶん、構造化というよりは、自分の役割だけをこなしてあとは、
人に任せるということなんだと思う。
ドメインモデルは、1つのクラスに役割が集中しすぎる危険性があるという話。
>>265 言い方が違うだけで、構造化とやってることは同じだと思うけど。
人=オブジェクトって考えが出てるけど、これはJavaの言語仕様上オブジェクトが便利なだけで。
関数ポインタが使えるか、メソッドを代入できる言語では、オブジェクトである必要はなさそうだし。
そのオブジェクトはステートレスなんだよね?
つまりは、ドメインモデルを適切に構築するのは難しいから、構造化されたトランザクションスクリプトで、ってことでしょ?
で、手続き呼び出しの構造化ツリーの構築にDIが便利と、そういうことでしょ? ただ、ここでインターフェイスを持ち出してくる必要があるのかないのか。 インターフェイスはテストの都合で必要なわけで。 処理を動的に切り替える予定がない部分をインターフェイスにする理由は、それしかないよね?
あ、AOPもか。
なんかトランザクションスクリプトってことになんとか持っていきたいように思えるが、 「モデル」部分を「単純なデータ保持/DBアクセスオブジェクト」として完全委譲した だけで、これはドメインオブジェクトだって理解した方がいいんじゃないの? トランザクションスクリプトってのは、サービス層でDBアクセスも全部世話して、呼び出した メソッド一つで全部やってしまうようなもんだろ。 プレゼンテーション層 -> サービス層(薄い) -> ドメインモデル(モデルを基準に分割/ORマッピングもする) ->DB が プレゼンテーション層 -> サービス層(薄い) -> ドメインオブジェクト(サービスを基準に分割) -> 薄いモデル(ほぼORマッピングだけする) -> DB になっただけなんじゃないの? どっちみちサービスの連鎖の開始ポイントとして、Facade的な 薄いサービス層は現れてしまうし。 で、薄いモデル部分がドメインモデルと比べて明らかな貧血症だから騒いでるだけだろ。 俺にはデータアクセスをドメインモデルから外に出して、分割の基準を変えたように見える。
トランザクションスクリプトじゃなんで嫌なのかがよくわからんけど、先のblogだけ見ると構造化されたトランザクションスクリプトにしか見えないんだよね。 結局サービス層のことをドメインと呼んで、その前に置いたコントローラー的な層をサービス層と呼んでるんじゃない? で、実際にドメインになる部分が薄くなって、「ドメインモデル貧血症」になってるからどうこう言ってるんじゃないの? いや、よくわからんのだけど。
分割の基準を変えたように見えるという点では同じかな?
>>267 ,268
学生ですか?
機能拡張とか仕様変更とか、手作業でトランザクション制御する手間とか
納期とか考えたことある?
> トランザクションスクリプトってのは、サービス層でDBアクセスも全部世話して、呼び出した > メソッド一つで全部やってしまうようなもんだろ。 いや、ドメインモデルを構築する代わりに全部1つの流れでやりましょうっていう形。 だから、ドメインモデルと置き換わるはず。 で、もちろん1つのメソッド・ひとつのオブジェクトで完結する必要はないと思う。 サービス層は、適切なトランザクションスクリプトを呼び出す層ということになるんじゃない?
>>272 > 手作業でトランザクション制御する手間
トランザクションが必要で、それがAOPで実現されてるならインターフェイスを使うしかないね。
で、機能拡張とか仕様変更とかの話だと、ソース追う手間が増えることを考えると、一概に言えるのかなぁ。
ソース追う手間は、無視してしまえる程度にしか増えないものなの?
機能拡張とか仕様変更とかで、インターフェイスが便利なときは、そのときインターフェイス作るっていうのは? いままでのクラスと同じ名前でインターフェイス作れば、ソースは変更しなくていいし、オブジェクトの生成はDIでやってるわけだからそこ書き換えるだけじゃないかなぁと。
その記事に書いてある通り、どっちがいいかはビジネスロジックの複雑さに依るのだろう。
>>278 複雑な業務ロジックだと、トランザクションスクリプトには
向かないというのはなぜ?
別にトランザクションスクリプトはどうでもいいんだけど、
コンポーネント分割でDIで組み立てるやり方なら、
逆に複雑な業務ロジックに向いてると思うけど、
理由は、それぞれのコンポーネントは小さいから。
ドメインモデルは、複雑なロジックになればなるほど、
クラスは大きくなる。
>>279 複雑な業務ロジックをやる予定は、今しばらくないので、「ファウラータンが言ってるから」で済ませてるんだけど、だめ?
なにか説明するにしても、ファウラーの言葉の引用になりそう。
とりあえず、ドメインモデルとトランザクションスクリプトの違いは、オブジェクトが状態を持つか持たないかだと思うけど。
で、複雑な業務ロジックの場合は、オブジェクトが状態を持ったほうが好都合なんじゃないのかなぁ。
ドメインモデルで複雑なロジックになればクラスが大きくなるというのなら、そのときトランザクションスクリプトならそれぞれのコンポーネントを小さく保てるのはなぜ?
>>281 複雑なロジックを単純な役割に分割してそれぞれの役割にコンポーネントを
割り振るからだろう。
それぞれの役割は単機能だから小さい。
ドメインモデルだとデータに対して振る舞いを割り当てるから、
複雑になればなるほど、やらなければならない役割が増える。
>>280 >
>>279 > 複雑な業務ロジックをやる予定は、今しばらくないので、「ファウラータンが言ってるから」で済ませてるんだけど、だめ?
> なにか説明するにしても、ファウラーの言葉の引用になりそう。
引用は別に良いと思うけど、理由を説明できなければ意味はない。
ファウラーたんも盲目的に信じて欲しいとは思ってないと思うけど。
> とりあえず、ドメインモデルとトランザクションスクリプトの違いは、オブジェクトが状態を持つか持たないかだと思うけど。
そんなことどっかに書いてある?
トランザクションスクリプトだと単純な役割に分割できるときに、ドメインモデルだと単純な役割に分割できないことになるのはなぜ?
>>283 > そんなことどっかに書いてある?
そうじゃないの?
そのモデルが適切に分割できないということになるのはなぜ?
さあ? DBのテーブル構造に依存しちゃったんじゃないか? モデルって永続化のやるしねえ。
逆に、モデルを適切に分割することができないとして、そのときトランザクションスクリプトを細切れに分割したところで、おおきなドメインのモデルよりも有効だと言えるの? トランザクションスクリプトはいくらでも分割できるだろうけど、そのとき大きなドメインのモデルよりいいかどうかは疑問に思える。 杞憂なのかな?
>>288 ORマッピングで、1つのテーブルをいくつかのオブジェクトにマッピングできるものもあるわけだし。
>>289 のいいたいことがよくわからんのだが、ドメインモデルに比べればそんな利点は霞むと
いいたいのか、大して変わんないんだからドメインモデルでいいじゃんといいたいのか、
言ってることに利点など何もない、問題は存在しないといいたいのか。
スレ違いだけど、ちょっと気になったんで、確認させてください。 デマルコの「構造化分析とシステム仕様」は、「構造化」の原典のひとつだと思って引っ張ってきたんだけど、違ってる?
>>289 分割統治せよは、昔から言われている真実。
大きいより小さいほうが中身がわかりやすいのは当たり前。
複雑なドメインロジックの場合、データと役割は単位(大きさ)が
かみ合わないことのほうが多いので適切に分割できない。
たいていの場合、1つのデータに多くの役割が集中する。
なぜかっていうとそのデータに関する役割を集めるからね。
必然的にそうなる。
>>291 ドメインモデルが分割できないときに、細切れのトランザクションスクリプトをばらまいても、問題を複雑にするだけということはないだろうか?と。
ちょっと前にも出てたけど、ドメインモデルってモデルを基準に機能をどこにおくか 考えるからさ、「この機能、どこにおいてもぴったりしない」とかいうことがあるよねえ。 で「社員Util」とか変なのがいつのまにか作られてたり。 俺はサービスを分割基準に置くのは悪い考えではないと思うし、それによってオブジェクト指向的な 利点を無効にしてしまうこともないと思うよ。 モデルの役割をモデル内データの管理とその永続化だけにしようって考え方も、とてもオブジェクト 指向的だとおもうけど。
>>294 んん? 単にモデルにはモデルの役割だけさせて、ビジネスロジックはモデルの役割じゃないから
サービスとして分割しようって言ってるだけだと思うんだけど。
サービスとして分割してしまえば、分割の自由度は上がる。でも意味もなく細切れにしたら混乱する
のはあたりまえ。「ここは分割しなきゃ」と思ったときに、ドメインモデルだと分割しにくいけども、
サービスだけならきれいに分割できることがあるってだけ。
>>292 間違ってないよ。
なんか構造化は悪いものだとか、オブジェクト指向とはかみ合わないとか
勘違いしているやつが多いのか。
ようするに、
ttp://www.nri-aitd.com/tips/g-patern.htmlのグラフだと 、トランザクションスクリプトは問題が複雑になったときに加速度的に設計コストがあがってるけど、そうではない、っていうことなんだよね?
実際、ここにはドメインモデルがいいとは書いてあるけど、トランザクションスクリプトがダメな理由は書いてないね。
だから、どっちも疑問といえば疑問なんだけど。
ただ、モデル化は視点の問題だと思ってるので、片方のモデルで適切に分割できないのに片方のモデルでは適切に分割できる、というのが、にわかに信じれない。
複雑なものを細切れにすると、単純なものが複雑に散らばるだけなんじゃないかと。
それよりは、大きな複雑なものがあったほうが、見通しも良くていいんじゃないかと思うわけです。
そのとき、それぞれの部品の単純さを主張しても、意味のある主張になるのかなぁと。
実際に上記のサイトのグラフで線が入れ替わるところのような複雑なものは、単純に例示できないだろうから、難しい話だとは思うんだけど。
>>297 そう。
だから、なんでヒガさんが構造化だと言われたことを誤解だと斬って捨ててるのか、疑問。
>298 適切って言葉をどう捉えるか。くーす的なのは「いかに維持しやすいか」が視点だろう。 そのかわりドメインモデルの明快な美しさは失われるが、それはビジネスだから諦める。 理屈ではドメインモデルってみんな好きなんだよ。でも仕事で使ってみると 世の中明快に割り切れるものなんてないし、たとえうまく設計できたとしても システムは完成した瞬間から陳腐化するから維持運営に結構苦労する。 サービス分割って考えは希望が持てる。業務とコードが対応してるから直すときに躊躇がいらない。 将来一部業務に大変更が発生しても、ほかへの影響なしにそこだけ手を入れられるってのはステキだ。
おれは、そのモデルの機能が_本当に_多くて複雑なモデルになるなら、 それはそれでかまわないと思ってる。でも実際には、そのモデルAの役割というよりは、モデルA とBとCをつかってほにゃららする、という機能が結構あるんだよ。 結果としてAがB、Cを保持したりして実現するわけだ。 それがAというモデルの機能なのか?という疑問というのが1点ある。B、Cでないとどうして いえるのか? またAでもBでもCでもなく、ABCと取りまとめる別のモデルの機能ではないか? さらに、その機能のためにAはB、Cを保持してるわけで、結局は「複雑に散らばってる」わけだ。 大きな複雑なモデルってのは、「大きなものがひとつあって、そこだけ見ればなんとかなる」んじゃ なくて、細切れのモデルが一つのモデルの中で絡み合ってごちゃごちゃになってて、結局全部の モデルを理解していないと「大きな複雑なモデル」を理解できない。だから「ドメインモデルは全体を 理解してないと使えない」と言われるわけ。さらにモデルが永続化も担うので、役割過剰と言われ ても仕方がないと思う。 サービス分割も同じ問題ははらんでるよ(あるサービスが別のサービスと絡み合うとかね)。 ただサービスが一つのビジネスロジック上の役割で分割されているので、触るときに影響範囲が 見えやすいし、「あ、これは別の業務だな」と思ったら躊躇なく分割できる。結果として細切れの サービスができかねないのは事実なんだけど、細切れのものが業務単位でまとまってるので、 多少はまし、といったところか。
誰にツケ回したところで、結局は自分で払うんだべ。
>>300 とりあえず前提条件おさらい。
どうやって計ったかはしらないけど、トランザクションスクリプトだと天井つきぬけるくらいコストがかかるとファウラーが主張するくらいビジネスロジックが複雑なときの話。
で大きいまま分割できないドメインのモデルがある。
そのとき、そのドメインのモデルは、その大きさのままが維持しやすいことになるんじゃないのかなぁ。
将来そのモデルのかかわる一部業務に大変更が発生しても、いろいろなところを追わずに、そのモデルだけ修正すれば済むわけで。
もちろん、分割できないモデルだから、そのモデル全般に影響が及んでるだろうけど。
縁がありそうな程度の複雑さのビジネスロジックでは、
>>300 に賛成。
>>303 うーん、なんか逆な気がするな。
大きく複雑なモデルは仕事をいろんなモデルに移譲しまくってるので、「業務」単位でみると、
一つの業務追加・変更で複数のモデルに影響がでるよ。
モデルの分割単位はあくまで「なんらかのビジネス上の概念」であって、業務ではないからね。
で、たいていの業務では、「なんらかのビジネス上の概念」が複数絡まってるもんだ。この複数
絡まってる機能をどこにおく?という話じゃないか。
>>301 いや、そのとき、ドメインモデルだと細切れのモデルが絡み合っててごちゃごちゃになってて結局全部のモデルを理解してないくらい複雑なのに、サービス分割だと影響範囲が見えやすく業務単位でまとまってるってことはないんじゃないのかな、と。
サービスを、躊躇なく分割したり業務単位でまとめれるなら、ドメインモデルも同じように分割して業務単位でまとめれる可能性が高いんじゃなかろうか。
ドメインモデルのときは複雑な業務ロジックの話をしてるのに、サービス分割のときはそこまで複雑じゃない業務ロジックの話をしてるように見える。 もちろん、複雑じゃない業務ロジックの話で、ドメインモデルよりサービスでの分割がいいというのは、同意できる。
>>305 そうだね。でもそのようにドメインモデルを分割したら、それはドメインモデルじゃないんじゃない?
ドメインモデルはそのモノが担うべきものだけを提供すべきで、業務的な必要性から関係ない機能を
追加するもんじゃないからさ。理想としては、もし業務要件が複数のモデルが絡み合うものなら、
複数のモデルを直すべきなんだよね。
業務要件で勝手にまとめてどっかのモデルに押し込んじゃったりしたら、ドメインモデル特有のオブジェ
クト指向的美しさは台無しじゃないか? でもビジネスはそんな美しさは関係ない訳で、そこに軋轢があ
るんじゃないか。
サービスだと、そもそも業務単位でまとめるもんなんだし、分割しやすいしまとめやすいってことじゃ
ないかと。まあ業務要件があって仕事があるという現実に即した分割方法じゃないかな?
>>307 その意見が、非常に複雑な業務ロジックで成り立つのかが疑問なんです。
まあ、その解を得ることに、「
>>308 の図が読み解ける」という以上の意味はないんだけど。
というか、ファウラーが
>>308 の図のそれぞれの軸をどう計ったかが一番疑問だな。
もちろん長い年月ソフトウェアに関わって、いろいろな開発をみてきて、実際の測定もしてきたわけだから、それなりの根拠があることは間違いないんだけど。
非常に複雑な業務ロジックってなんなんだろね。 ありがちなのは飛行機工場の生産管理とかかな?
いきあたりばったりのうちの営業
業務になってる部分が少ないから却下、とか。
>>305 トランザクションスクリプトは、任意の単位に分けられるから
機能単位に分ければ良いが、
ドメインモデルは、意味のあるデータ単位に振る舞いを持たせるから
機能単位に分割できないという話でしょ。
>>309 > というか、ファウラーが
>>308 の図のそれぞれの軸をどう計ったかが一番疑問だな。
禿胴
>>309 ファウラーのいっているトランザクションスクリプトは、
1つのクラスでメソッド分割するイメージなんだと思うな。
それだったら、複雑になればなるほどクラスが大きくなるから
その維持は大変になる。
ドメインモデルは、複雑とはいっても複数のクラスに処理が
分散されているからましということなんじゃないだろうか。
そういう前提なら、
http://www.nri-aitd.com/tips/image/g-patern_4.gifも まぁ、そうかなという気もする。
くーすでいっている役割分担によるコンポーネント分割方式なら、
複雑になっても、それぞれのコンポーネントの役割は明確で、
小さいから維持は、ドメインモデルよりしやすいだろう。
>>313 いや、それで、トランザクションを分けたときに、業務単位にまとめれたり、影響範囲がみえやすかったりするのだろうか、と。
ドメインモデルでは、複雑でごちゃごちゃに絡み合ってそれ以上分割できず、全体をみないといけないのにだよ?
ドメインモデルは比較的単純な業務でも複数のモデルが絡み合う(というかそういう風につくるもん) なんで、単純比較してしまうとなあ。
>>316 業務単位に最初からクラスを作れば良いんだから分けられるに決まってる。
影響範囲が見やすいといっているのは、本来独立した複数の業務が
交差することはないためでしょう。
>>317 うん、だから、単純な業務ではドメインモデルじゃないほうがいいというのは共通認識になってると思う。
>>318 いちおう、
>>303 あたりの前提条件みてください。
>>319 だから、複雑で分割できないと思っているのは、
データを中心に見ているからでしょう。
データに関連する振る舞いを全部持たせようとするとそうなる。
複数のモデルに関連する振る舞いをどれかのモデルに持たせればそうなる。
機能を中心に見ればそんなことはない。
どんな複雑な機能だって、シンプルな機能に分解できる。
重複したコードが散らばって、機能追加・変更が大変になりそうだけど。
だからさ、サービスで分割ってのは、まさに「データに振る舞いをのせるのでは なくて、データの管理と永続化は外に出しちゃって、ビジネスロジックは機能で 分割しましょう」って話じゃないのか?
>>309 >というか、ファウラーが
>>308 の図のそれぞれの軸をどう計ったかが一番疑問だな。
PofEAAによるとそれは「nonscientific graphs」らしいよ。
ファウラーたんの感覚的なものに過ぎないんじゃないかな。
>>320 だから、機能がシンプルなものに分割できることはわかってるんだけど、そのつながりが複雑になるんじゃないの?と。
で、そういう話をしているときに、単体のシンプルさを主張しても、あまり意味がないんじゃない?
って、だいぶ前に書いた気がする。
>>324 ま、そんなもんなんだろう。
とりあえず、ファウラーたんを信用ことにするよ。
感覚的なものを極端に書いてると思っておく。
ただ、いつもどおり目の青い人の国でのお話だから、日本で鵜呑みにはできんけど。
>>325 そういうことか。
どんなに複雑な組み合わせでできたコンポーネント群でも
特定のコンポーネントを見れば、自分と直接関連のある
コンポーネントだけとしか関係を持たないから
つながりも複雑になることはない。
ファウラータソの感覚に振り回されてクリスマスの休日にドメインモデル談義か。おめでてえな。
331 :
デフォルトの名無しさん :04/12/25 20:41:19
結論:構造化に始まり構造化に終わる。
いいじゃんここで。おもしろいよ。 業務機能とソースコードのバランスをどうとるか、って噺はあんまり聞かないから。
>>328 話が、ファウラーたんもびっくりレベルの複雑な業務ロジックだったときに、果たしてそういえるのか。
特定のコンポーネントだけをみて、自分と直接関係のあるコンポーネントだけをみて、用が足せるのか。
甚だ疑問。
>>333 またまたスレ違いの質問なんだけど、DOAの原典的な本とか、始祖的な人ってどこらへんになるんだろう?
一度中途半端に調べてみたんだけど、わからなかった。
>>334 疑問に思うのは自由だけど、それで用は足せる。
DIでは、自分の直接の知り合いとしか話しないから。
相手を探しにいくことはないんですよ。
コンテナが必要な人をDIしてくれるんだから。
PoEAAを書いた頃にDIってあったの?
>>336 べつにここでDIを出してくる必要はないと思うんだけど。
それと、DIでオブジェクトが組み立てられて、個々のオブジェクトが単純で、少ない数のオブジェクトとしかやりとりしないからといっても、本質的な複雑さが解消できるものではないと思うよ。
本質的な複雑さというのは、系が閉じているときは一定なので、モデリングのやりかたで複雑さがかわるものでもないし。
ここでDIが出てくる必要はないな。 業務サービスベースで考えるので、そもそもの実装が「なんらかの特定業務に 関連した情報を返す」ということがモデリングのスタート地点になってる。 ドメインモデルは「おれのモデルでできることはここまでだよ。他の処理はほかの モデルがやるんだろ? おれは知らんよ」という構成になっているので、各モデルの 位置づけを理解した上で、さらにそれがどうつながってるか理解しないと、何を やろうとしているのか(何の業務を解決しようとしているのか)分からなくなる。 サービスベースでもサービスが増えればややこしいのは事実。DAOも含めると、30 近いクラスが絡み合ってることもあるよ。 でもこの複雑さは、おれたちが普通に関数なりメソッドを呼ぶときに「あ、ここはちょっと 別のprivateなメソッドにでも分けるか」とかやってメソッド一つずつをシンプルにして、 1メソッド3000行とかならないようにするのと似てる。つまり機能が複雑になってきたし、 重複しそうだから、一部機能を_機能として_分割してるわけで。 おなじ絡み合っているのでも、つながりが追いやすいんじゃないかな。
たぶんそういうことだろうね。 業務が複雑になったときには、ドメインモデルを構築してないと、「なんらかの特定業務」すらどこで行っていいかわからなくなると思う。 でも、ドメインモデル構築自体の複雑さが問題にならなくなるような複雑なシステムはそれほどない、と。 たぶんシステムの多くを占めてる、流通系とかお店のシステムだと業務がそれほど複雑じゃなくて、商品・サービスの移動と「なんらかの特定業務」がリンクしやすいしね。
最近なんかこのスレ妙に建設的じゃねーか(w でも悪くない気分
おれのおかげだな。
英語や技術を頑張るのは結構だが、先人を平気で禿呼ばわりする人格を 変えるのが先だと思う。それとも英語で書く時と日本語で書く時に 使い分けるつもりなんだろうか? ほんと気分悪い。
>>344 それはおれは関係ないよー。
でも、気分が悪いことを思い出させてしまってごめんよー。
346 :
デフォルトの名無しさん :04/12/26 00:09:43
>>344 誰もファウラータンを禿なんてよんでないよー。
「_ ̄フ ノ^ー┐ ///////////ノ/ ,-、二、 ーク / 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 ゚ ゚ ゚ ゚ `ー" ー' 〔 / ̄/ '", /// ,.
俺はどっちかというと344のような 学級会的道徳観の持ち主の方がすんごい気持ち悪い。 おえー。
もし>344が上司のことを影で悪くいいながら 本人の前で言わないようなことしてたら同じ穴の狢 他人に腹が立つのは大抵そこに自分を見るかららしいぞw
ファウラーたん議論が終わった感じだけど、蒸し返してみる。 ドメインモデルってMVCモデルのMを具現化したものだろ。でもくーすってMVCじゃなくて、 ヤコブソンのBCEを具現化したものだろ。Boundary-Control-Entityって用語を使ってる ところからして。 BCEってMVCの問題点を解決するものとしてあげられてるんだし、MVCなドメインモデル から見て矛盾があるのはいわば当然じゃないかな。
>>350 ファウラーのMVCモデルは、ウェブプレゼンテーション層の中だけの話。
アプリケーション全体をMVCにして、UI以外を全てMに押し付けるモデルは、EJBが重すぎて崩壊してしまったのを見ればわかるように、実際には使い物にならない。
J2EEのMVC Model2におけるMはファウラーたんのドメインモデルの領域だと思うが... あとEJBが重すぎるのはリモートコールを多用するからじゃないか? ローカルコールで動かすと、悪名高いEntityBeanですらそれなりの速度で動くぞ。
動作の重さを言ってるわけじゃないのだが・・・ それと、蒸し返すといっても、少なくともこのスレでMVCという言葉は出てきたことがないのだが。
そうだね.... じゃあ、蒸し返すのでなく次の話題ってコトでどうだろうか.....
いやぁ、MVC Model2なんて使い物にならないというか、どうにもならないことがわかってるので、話題としておもしろくない・・・
MVCmodel2だと、VがMからデータを得る。 でも、ファウラーのMVCでは、Vはドメインモデルとやりとりしない。 MVCmodel2とファウラーのモデルは対応しない。 というか、MVCmodel2で、やんちゃなV(JSP)と、たよりないC(Servlet)を与えられて、「あとはMです。ご自由に」と広大な空き地をおしつけられても、ねぇ。
ドメインモデルとしてのMは、ほんとにドメイン特有のオブジェクト群。 MVCmodel2としてVに渡されるMは、ドメインモデルとは別のものでVが必要とするM。 ドメインモデルのMからMVCmodel2としてのMへの翻訳が必要。 おれはかならずこの翻訳を意識している。 翻訳しないケースがあれば、それはたまたま両者が一致しているという特殊ケースと位置付ける。
359 :
デフォルトの名無しさん :04/12/27 10:00:03
kusuに話をもどしていいかな? kusuが対象とする開発は20-50人の中規模と思うのだけど、 開発者にDIについての認識を強要するのは酷な話。 少なくとも、開発者全員が一読するという代物ではない。 であれば、kusuって開発の方法論であって開発標準ではないよね。 この規模の方法論って他にもあるのに、なんであえて提唱したのか よくわからないんだよなぁ。
>>357 翻訳といっても、その幅は広いよね。
インスタンスへのリンクを渡すだけのファサードな場合もあれば、ドメインモデルの全プロパティをコピーするDTOな場合もある。
357の意図してるのはどちら?
>359 同じ規模のものが他にあっても、提唱しない理由にはならないでしょ。 ほとんど同じものが他にあるなら別だけど。
どうでもいいけど、Seasarそっちのけだな。 DIスレと分けた意味はあるんだろうか?
>>362 Webじゃなくても、基本的には変わらんと思うが。
>>361 他のものとどこが違うか、よくわからない。
Seasarに依存するってとこ?
>>361 PofEAAの解説にしかみえないのは、俺だけ?
367 :
デフォルトの名無しさん :04/12/27 13:00:07
>>361 いや、比嘉氏は既存の中規模システム開発用の開発標準にでは
満足いかなかったのではないかと思う。つまり、RUPを軽くした
国内開発者向けの標準を作らなければならないという危機感が
あったのではないか、と、そんな気がする。
kusu本を出すなら、その辺の経緯も記してもらいたい。
開発者が俺一人な小規模組織にはくーすは不要ですか?
369 :
デフォルトの名無しさん :04/12/27 14:52:46
>>368 自分の技術レベルが低いと思ったら使えばいいんじゃないの。
370 :
44 :04/12/27 20:02:55
http://d.hatena.ne.jp/higayasuo/20041220#1103529853 >話を簡単にするために常にデータと振る舞いを一緒にするというのは、
>それはそれでOK。
>
>ただし、機能が増えるにしたがって役割多すぎなクラスになる
>危険性があるということです。最初は、データと構造を一緒に
>しておいて、機能が増えてきたらリファクタリングすればいい
>という考えもあるかもしれません。しかし、それは、
>リファクタリングではありません。利用する側から見て
>インターフェースが変わってしまうからです。
インターフェース/クラスの内部でExtract Classしたクラスへ対して委譲すればいいだけでは?
そうすればインターフェースは変わりませんよね。
371 :
44 :04/12/27 20:14:15
http://d.hatena.ne.jp/higayasuo/20041220#1103529853 >「データ構造を公開することによる疎結合性を妨害」という点では、
>永続化されるようなデータの構造は、もともとpublicですから特に
>問題にはならないと思います。
何に対してpublicなのでしょうか?
また、データ構造をクラスの外へ公開することによるデメリットとして、修正箇所がアプリケーション中に分散してしまうことなどがあると思いますが、publicであることはこのことに何か解決策をもたらしているのでしょうか?
372 :
44 :04/12/27 20:18:34
つい責めるようなな口調になってしまいました。申し訳ないです。
>371 >修正箇所がアプリケーション中に分散してしまうことなどがあると あっちこっち直すことになるかもしれないが、 どの業務機能から使われてるかが分かるから影響範囲が明確になる、とも言える。 これは高度に抽象化をおこなわないことによるメリットかな。 修正が難しいのはデータを「変更」する処理だろうが、それって分散して存在することは稀。 SeasarならS2Daoでエンティティ単位の管理ができるから、そんなに大変ではないだろう。 主として影響を受けるのは大抵は入力・表示関係。そしてそれはUI層の問題だから別の話になる。
374 :
デフォルトの名無しさん :04/12/27 23:23:59
みなSeasarやくーすにどうしてそんなに熱くなるのか, だれか分析してくれ。
それにはまずロバストネス分析から始めないとだめだな。 バウンダリはなんだ?
378 :
デフォルトの名無しさん :04/12/28 00:01:49
>>372 とりあえず、以後、他人に意見するのは止めることですね。
s2jsfのexampleなんで、編集だけで、削除とか作ってないんだ? 「易しさと優しさ」とか言ってたのに、あとは、自分でやれってことか?
>>373 とりあえず前半部分は技術者の意見とは思えない。
後半は俺が読み違えてるのかもしれないので確認したいんだけど、
public属性の影響を受けるのは、値を設定するところじゃなくて
むしろ単純読込の方が量が多くて問題になる。
たとえばその属性の型が変わったり、setXXの時に小数点2桁で丸めたい、
という変更があったときに、アクセッサ経由で統一されている方が楽。
そのモデルのサブクラスを作って変数をオーバーライドしちゃうと
ベースクラス側でのメソッドの中でアクセスしてる変数と別物になっちゃうので
スマートな形でサブクラス化できないこともある。
膨大な繰り返し処理の速度を速くしたくてわざとpublic属性にすることは
あるけど、そういうのは基本を踏まえた上での小手先のテクニックとして
ソースにコメントをつけながらやることであって、できるだけ基本は
守っていた方がいい事が多い。
ひがさんはOOPのメリットをあまり理解できなかった側の人だと思うので、
44さんはもう突っ込まないであげればいいと思う。DI自体は悪くない技術だし、
彼らのモチベーションが高い方がseasarがいい方に行くと思うから。
逆にseasarが好きで変な方向に行って欲しくないからこそ、ひがさんにいろいろ
突っ込みを入れてるのかもしれないけど
>>380 そこはスローガンなんだからそんな言い方するこたあないだろ。
「削除も作ってほしいなあ」とか言えば気分良く作ってくれる人が
いるかもしれないのに。
s2jsfってjsfのコンポーネントぜんぜん使えんのか
>>381 うーん、何が言いたいのかよくわからんわ。
> たとえばその属性の型が変わったり、setXXの時に小数点2桁で丸めたい、
> という変更があったときに、アクセッサ経由で統一されている方が楽。
だったらそうすりゃいいじゃん。
>>381 はフィールドをpublic属性にする話をしているように読めるのだけど...
永続化データがpublicだという話をそう読んだわけ?
永続化されるようなデータはそもそも構造が公開されてるもんだと
いう意味で、publicだと言ってるだけだと思うけど。
S2Dao使ったって結局各データにはアクセッサ使ってアクセスするんだし、
プロパティとして扱ってるから、アクセッサ経由だし。
>>381 > 膨大な繰り返し処理の速度を速くしたくてわざとpublic属性にすることは
> あるけど、そういうのは基本を踏まえた上での小手先のテクニックとして
> ソースにコメントをつけながらやることであって、できるだけ基本は
> 守っていた方がいい事が多い。
すまん、膨大な繰り返し処理って具体的にはどんな業務ロジックなんだ?
想像できんので教えてくれ。
>>386 NHKみてなかったの?かわいかったのに。
「NHKスペシャル地球大進化 生命の巨大化」の枠でやってたから、巨大化ってパンダのことかーっ、と思いながらみてますた。
390 :
デフォルトの名無しさん :04/12/28 11:34:24
OOが開発効率の足枷になってる事に留意しろっつうの
org.seasar.dao.impl.DaoMetaDataImpl#createResultSetHandler method.getReturnType().isAssignableFrom(List.class) ↓ List.class.isAssignableFrom(method.getReturnType()) じゃないか?
392 :
デフォルトの名無しさん :04/12/28 12:37:39
>>388 比嘉氏が言いたいのは、ERDは早々に確定するから属性公開しても影響ないってことだろ。
393 :
44 :04/12/28 18:33:55
http://d.hatena.ne.jp/higayasuo/20041227#1104147737 >もともと永続化されるデータ、テーブルで管理されるようなデータ
>というのは、その構造は、ER図などで外部に対して公開されています。
>
>一般的に言われるようなカプセル化の話は当てはまりません。
外部の意味が曖昧なので推測で。
ここでい言う「外部」が
>>392 >比嘉氏が言いたいのは、ERDは早々に確定するから属性公開しても
>影響ないってことだろ。
ということであれば、それでもなお、カプセル化の話は当てはまると思います。カプセル化さえされていればクラスの内部で、Extract Classした先への委譲でも、Replace Type Code with State/Strategyでも、なんでもやりたい放題できますから。
また、「外部」が外部システム等であったとしても、若干の不自由は強いられるかもしれませんが、それでもなお上記の理由でカプセル化する利点は存在すると考えます。
394 :
デフォルトの名無しさん :04/12/28 18:45:41
395 :
44 :04/12/28 18:46:59
396 :
デフォルトの名無しさん :04/12/28 18:52:42
>>387 > すまん、膨大な繰り返し処理って具体的にはどんな業務ロジックなんだ?
> 想像できんので教えてくれ。
業務ロジックかどうかは微妙だけど java.awt.Point数万個を使うようなグラフィック処理。
あと、石油埋蔵量予測システム。(どっかで読んだ)
>>396 サンキュ。そういうやつか。俺の仕事では出会うことは無さそうでほっとした。
今更こんな事を聞くには恥ずかしいんだけど・・・・・・・ MAIN─Seasar─dicon │ ├クラスA ├クラスB ├クラスC └クラスD 「SeasarとはクラスA−Dの纏め役で、どれを使うかdiconに 書いておけば、そのクラスを返してくれるもの。」 という理解で合ってる?ドキュメントを1ヶ月ほど読み耽って やっとこ辿り着いた答えがコレだったんだけど・・・・・・
ひがさんにOOSEを読んでみて欲しいな。
400 :
デフォルトの名無しさん :04/12/28 23:21:27
>ひがさんにOOSEを読んでみて欲しいな。 ひがさんが問題としていることは、OOSEでも取り上げられているから。
初心者が1ヶ月読まないとそこにたどりつけないドキュメント。
403 :
デフォルトの名無しさん :04/12/28 23:46:47
>>402 ちょっとコードを書けばすぐにわかると思うんだけどね。
最近はドキュメント読んだだけで済ませようとする人が
多いのでびっくりだ。
405 :
デフォルトの名無しさん :04/12/29 00:07:16
>その原因は、過度なデータ中心のクラス設計にあると私は考えています。 >データと振る舞いを1つのクラスにまとめるのは、自然なことですが、 >あるデータを使う機能をすべて1つにまとめると役割持ちすぎなクラスに >なりやすいと考えています。業務アプリケーションなどはとくそうで、 >直接関係のない機能が1つのエンティティに押し込まれやすくなります。 そうなった場合に適宜リファクタリングしてやれば解決する問題だと考えます。 >また、複数のデータにまたがるような機能は、そもそも適したクラスに >振る舞いを割り当てるのが難しくなります。 複数のデータにまたがるような機能が全てそうだとは言いませんが、どのドメインオブジェクトへも割り当てがたい責務はコントローラクラスへ割り当てれば良い、と古のOOSEに記されています。そのことには異存ありません。 # UnifiedProcessは全く追っていないので、もうobsoleteなのかもしれませんが データと振る舞いをひとつのクラスにまとめる。責務が多くなりすぎたらクラスを分割してやる。振る舞いを割り当てるのに適したクラスが無い場合はコントローラクラスとする。これでも駄目なのでしょうか?
>>401 そうですか・・・・・・やっと、やっとここまで辿り着きました(;´д⊂ヽヒックヒック
>>404 ぶっちゃけその通りです>ドキュメント読んだだけで済ませようと
「Seasar = フレームワーク」と勘違いして、「クラスを切り替えられるのは分かったから、それ
で最終的にはどうなるんだ?」という明後日な視点でドキュメントを読み続けてました。
髭剃りを他の何かだと頑なに信じ込んでしまってる人が、説明書を見ながら「髭が剃れるのは
分かったから、最終的にどうなるんだ?」と途方に暮れてる姿を想像してもらえれば近いので
はないかと・・・・・・
勿論、結論は「だから髭が剃れるんだよ」というものなんですが、見てる方向が違うと辿り着け
ないんですね、これが_| ̄|○|||
最後に、とりあえず現在のところドキュメントに不満はありません。
目は何も見てはいない、見ているのは脳。という言葉をちょっぴり実感した年末でしたw
409 :
デフォルトの名無しさん :04/12/29 00:38:44
>>405 >複数のデータにまたがるような機能が全てそうだとは言いませんが、
>どのドメインオブジェクトへも割り当てがたい責務はコントローラクラスへ
>割り当てれば良い、と古のOOSEに記されています。
>そのことには異存ありません。
> # UnifiedProcessは全く追っていないので、もうobsoleteなのかもしれませんが
余談ですが、昨今の、ロバストネス分析で導出されたコントロールクラスは設計モデルでそのままストレートにクラス化すべし、という風潮はあまり好きになれないです。
某オブジェクト指向本も読んでみたんですが、ドメインモデル貧血症推奨な感じで、なんだか。
RUPの人もICONIXの人も、分析段階でのコントローラクラスの責務はバウンダリかエンティティに割り当てる、もしくはコントローラ自体をクラス化する、と言ってるように思うんだが。
というか、スリーアミーゴはICONIXの人よりもきつい言い方をしてて
「コントロールクラスを実現するのに別々の設計クラスを用意するのは
適切ではない場合がある。むしろ、関連するバウンダリやエンティティを
実現する設計クラスと同じものでコントロールクラスを実現したほうが良い」
と言ってるのだが。
S2のドキュメントは昔に比べたらめっちゃ充実ですね。 S2Daoもここのところリリースが多かったですが、追加したあのテーションとかも ちゃんとドキュメントに反映されてるし。
>>409 >「コントロールクラスを実現するのに別々の設計クラスを用意するのは
> 適切ではない場合がある。むしろ、関連するバウンダリやエンティティを
> 実現する設計クラスと同じものでコントロールクラスを実現したほうが良い」
原文を知らないので良くわからないのだけど、それってStrutsで言えば、
Action内で直接エンティティにアクセスするってことかな?
相変わらずドキュメントネタしか突っ込めない
>>406
どうでもいいが、S2JSFだけ早くリリース汁
さっぱり話についていけないので、とりあえずPoEAAを読み始めた。
415 :
デフォルトの名無しさん :04/12/29 10:41:39
ひがし > blogに、これまでのオブジェクト指向の批判を書くのは、 > 私にとってはものすごくリスクの高いことです。なにを > 言われてもおかしくないですから。現にいろいろ言われ > ているわけですが、それでもあえて書いているのは、こ > れまでのオブジェクト指向がなぜうまくいっていないの > かを考え直すきっかけになればと思っているからなのです。 「これまでのオブジェクト指向」の定義と 「うまくいっていない」とする根拠を明確に示さないとただの 戯言.今までにない自分が始めて見つけた設計方法と認識して いるならば非常に痛い.自らの失敗経験や知りえる範囲での失 敗を踏まえた程度ではないのか.
↑ OO厨キター!
もうね、GoF以上にソフトウェア開発の実装におけるパターン化をやろうとしても、 ムリだってことがハッキリしたと思う。 これ以上ソフトウェア開発を効率化しようとするなら、 例えば業務会計ソフトなら、会計ソフトをプラグインで柔軟に変更可能にするとか、 そのAPIをソースコードごと公開するとか、 そういう、実装が伴ったものになると思う。 EJBのようなアプリケーション固有の実装を伴わないフレームワークは必要無い。
Enterprise Applicationは個々に異なる、という前提があるので、残念。
実装を共有しようとするのは現実的でなく、 フレームワークやパターンや開発手法を共有するしかない、ということ
>>423 PhotoshopやEclipseはどうなんだ?
プラグイン毎にソフト作り直すのが現実的なのだろうか
業務ソフトだってその考え方をもっと進めなきゃいかんと俺は思う
現実には、業務ソフトにまともなプラグイン機構を持ったソフトは 未だ存在しないから、せめてムダなフレームワークを使わず ただシンプルに作り抜くことが、今できることなんだろうと思うけどね。
>>417 原文読め
自分がネタにマジレスってことに気付くから
>>424 ベースを作ればあとは付加機能でしかないという分野以外で、同じようにプラグインの仕組みを考えるのはナンセンスだと思うが。
やっても意味がないという結論がでるようなことがらについて考えを進めても意味がなさげ。
ひがさんのblog > 手を変え、品を変え、オブジェクト指向は説明されてきましたが、情況はそれほど好転しているように思えません。 続く文章も、手を変え品を変えたオブジェクト指向の説明に見えるので、状況がそれほど好転しない気がする。
>>427 確かに、同じようなプラグインの仕組みは、やるだけムダなのかもしれないし
けど、うまく設計すれば、うまくいくかもしれない。
設計は難しいものになるだろうけど、チャレンジしてほしいけどね。誰かに。
S2やEJBは何の解決にもならないのは確か。
ならシンプルな技術基盤で作りたいね。
Javaを使ったウェブプログラミングがめんどくさいからいろんなフレームワーク
がでているわけで、なら別のプラットフォームを選ぶのがいいと漏れは結論した。
結果を出せるのはスクリプト言語だなと思ってる。
>>429 >設計は難しいものになるだろうけど、チャレンジしてほしいけどね。誰かに。
なんだよ、他人事かよ・・
業務というもの自体がPlugableじゃないからね。 何か新しい業務が埋め込まれたら、既存の業務に必ず変化があるし。 Plugableにするために工程とかプログラムの部分部分がちょっとでも複雑になるなら、普通にシンプルに作って、わかりやすく変更できるようにした方がよさげ。
>>431 プラグイン機構を持ったソフトを売るか、それ自体を使ったソリューションビジネスを始めようってんでも
ない限り、そういう先を読んだ拡張性を重視するのは、危険だな。
You aren't gonna need itの原則だ。
まさに、普通にシンプルがよさげ。
まぁ、プラグイン機構を持つのに向いている分野もあれば、向いてない分野もあると思う。
向いている分野も結構あると思うんだけどね。
たとえば、金融商品を扱うとかで、商品自体がデータ構造とアルゴリズムを持つような場合は、取り扱い商品をモジュールとして追加できるようにするというのはアリだろうね。
>>429 はDIスレに帰れ。
皆さんネタ厨に餌を与えないでください。
>>434 多分、無知だからだと思うんだ。
だから、スクリプト言語によるウェブシステム構築よりSeaserで作ったほうがイイ点、
勝ってる点を教えてください。
>>435 規模とか開発の人数によるよ。
スクリプト言語よりもJava+Seasarの方が、均質なコードを書くための労力が少ない。
均質なコードを書く労力が問題なければ、スクリプト言語でいいと思う。
マジにスクリプトのほうがコンパイル言語より基幹につかうに向いていると思ってるなら、死んだほうがいいな。
基幹っていっても、でかい基幹ばかりじゃないからなぁ。
5年くらい前なら、Javaで基幹系? 正気ですか? 医者よびましょうか? というような 感じだったような。今はどうであれ、先の事はわからない。
そのときでも、実務では使えないだけで実績がでてきたら使いたいというのがあったわけだけど、スクリプト言語の場合は・・・
>437 >440 だから、それはなぜかを示してほしい
442 :
デフォルトの名無しさん :04/12/31 02:11:36
素人には基幹系は無理。 Javaプログラマは素人。 よって、Javaプログラマには基幹系は無理。 以上。
>442 二番目が根拠無し
明らかにスレ違い。>スクリプト言語と業務アプリ 別のとこでやってくれ。
ここの話の流れだと、スクリプト言語とJava+Seasarを対比して、Seasarの特徴を知るという感じでもないね。
>>436 均質っていうけどなぁ、
均質にするのは方法論であって。
その方法論を実現するのには、コンパイルに依存しない
弱い結合が必要だっていうから、Seaserがあるわけでしょ。
コンパイル依存をなくしたいと思って行きつくところは、
動的なスクリプト言語ってことにならないだろうか?
それに、O/Rマッピングとか、ソフトウェアを複雑にする要因を
増やしてもしょうがないと思う。
>>446 実装との依存性はなくしたいだけど、
仕様(interface)との関係は明確にしたい。
仕様に合致してるかどうかはコンパイラにチェックして欲しい。
O/Rマッピングは関係無いと思うけど。
S2Daoの話なら別に複雑じゃないよ。
>>447 しかし、キャスト要らずのコードにするために、
あのdiで書かれた設定ファイルが必要になるわけで、
どっちにしろ動かしてみるまで分からないのは一緒だと
思うのだけど、どうだろうか。
それに、あのdiファイルってすごく冗長で書くの辛いしツール要るしで、
なんか本末転倒感が強い。
キャスト要らずってのは、間違いかな。どっちにしろ要るんだから。
業務ソフトは必ず一から作り直さないとダメ、 プラグイン機構を持ってもしょうがない、 ってな話あるけど、必ずしも、 そうでもない気がする。 ERPソフトの全てがネタだとは思わないし、 適切なインターフェースさえ定義して そのインターフェースAPIの意図を素早く読み取って プラグイン作る人さえそろえば、 少ない労力で結果として効果の高いソフトが作れると思うよ。
451 :
デフォルトの名無しさん :04/12/31 13:38:52
確かにコンフィグ系コンテナって設定ファイルが冗長だよな。 S2は特にそうだ。
そもそも、コンテナとは何か? 言語本来備わっている名前空間機能ではいかんのか? と思うわけだな
モチツケ。
>>450 > 適切なインターフェースさえ定義して
> そのインターフェースAPIの意図を素早く読み取って
> プラグイン作る人さえそろえば、
> 少ない労力で結果として効果の高いソフトが作れると思うよ。
そうだな。早く藻前がそれを作って公開すればみんなそれがどれくらい素晴らしいか理解できると思うよ。
とっとと作れ。
>>448 また、使ってないやつがコメントしてるのか。
S2は自動バインディングがほんとだから
DIについてはクラスの登録以外はあまりすることがない。
Springの設定ファイルについて文句あるなら、
Springすれでどうぞ。
スレ違い+勘違いUzeeeeeeeeeeeeeeeeee!!!
457 :
デフォルトの名無しさん :04/12/31 18:22:16
比嘉氏のドメインモデルに対する懸念には同意だ。 ビジネスモデルも柔軟性があり、いい発想だ。 しかし、ドメイン分析をまともに出来る奴がいねーのは問題だわな。 巷にはノウハウ本が溢れているが、だーれも読んでねーってことだ。 読者がアホなのか、執筆者がアホなのか。 まぁ、後者だろう。
>>457 > 読者がアホなのか、執筆者がアホなのか。
> まぁ、後者だろう。
○ージス総研と○蔵に通報しますた。
459 :
デフォルトの名無しさん :04/12/31 23:10:34
>>458 つうか、日本でドメイン分析をまともにやったプロジェクトはないだろ。
あるなら教えてくれ。
まぁ、未経験者の執筆した本でも趣味でやってる奴には楽しめるかもしれん。
もし仮に、diconをポトペタできる様なRADツールが存在したとして、需要が有るか否か もし仮に、diconをポトペタできる様なRADツールを作るとして、実現可能性はどれくらい あるか? または既にそういったツールが有るのか否か、情報提供キボーン
>>460 こんな年の暮れに何をかいとんねん。
もう新年だけど。
diconをぽとぺたする意味が良く分からん。
ツールならKijimunaはけっこう良くできてるよ。
皆様、あけましておめでとうございます。 なにはともあれ、今年もIT屋さんとしてがんばっていこうではありませんか ;-)
>>455 自動バインディングのために、クラスに定数定義したり、
やっぱりxml書かなきゃいけなかったりする。
そこまでする理由ってのが、どうにも見つからないんだな。
結局、Javaプラットフォームがプログラミングしづらいから、
なんとかカバーしようとしているだけとしか思えない。
だからJavaでやる意義を問いたいならスレ違いだって言ってんだよ。
465 :
あなたの運勢は 【ぴょん吉】 ですから!!残念っっ!! :05/01/01 17:46:02
m9(^Д^) プギャー
>>464 いや、漏れが一番知りたいのは、
Seaser作る人使う人が
ウェブ/データベースプログラミングをJavaでやると選択した理由なんだよ。
漏れの知らない深い理由があるのではないかなと。
>>466 ・CGIは力不足
・mod_{perl,ruby}は挙動が怪しいときに追うのが辛い
・PHPは言語仕様が糞
あとは別ヌレでどうぞ
>>461 実は俺
>>391 なんです。
Kijimunaの存在自体知りませんでしたorz
ただ、それはそれとして、設定ファイルを書くのが面倒という意見が多いんで
工夫できないものなのかな?工夫する為のツールは存在しないのかな?存
在はしてるけど認知度が低いのかな?認知されてるけど機能が足りてない
のかな?等々、現状どうなってるのか不思議に思ったものでネタ振りしたつ
もりだったんですが・・・・・・スベっちゃいました。
「手書きが面倒」という感覚は、ある種の人達(例えばLinux畑の人達とか?)
にはどう説明しても理解してもらえないんで、もしかしたらSeasar使いの人達
もその類の人達なのかと思ったんですが・・・・・・
実際のとこ、どうなんでしょう?
>>466 積極的に選ぶ奴もいれば仕事上仕方なしに使う奴もいるさ。
理由はそれぞれ。Javaを使うと決まったときに少しでも楽するために
S2を使うだけだ。気にしないでキミは自分の道を行くのが良かろう。
>>469 手書きが面倒だからといってVBみたいになれば楽かというとそうでもなかろう。
少なくともKijimuna使ってる分にはそんなに苦労はしてない。
( ´д)ヒソ(´д`)ヒソ(д` )
>>472 「そんなに苦労はしてない」この言葉にはとても多くの意味があって・・・・・・
例えば、Linuxのlilo.confは手書きです。これは設定ファイル自体が非常に
単純で、GUIエディタを作るまでもないというのがLinux畑な人達の言い分な
んだと思うんですが、一方でグラフィカルなブートマネージャに対する人気
は凄く高いという側面もあります。
決して批判してるわけではないんですが(批判できるほどSeasarを理解でき
てませんorz)、使いこなしてる人ほど見えなくなる部分みたいなんで一石を
・・・・・・MSはそういうとこ上手いと思う。
て言うか、俺自身が更にSeasarやEclipseを学んで、ポトペタdiconプラグイン
for Eclipseとかを作れる様になればいいんですけどね・・・・・・遠いなぁ(´д`;)
>>467 > mod_{perl,ruby}は挙動が怪しいときに追うのが辛い
これは、例えば、どういうとき?
>>469 私は手書き派ですが、diconファイルをクラスごとに用意してます。それでパッケージ単位でインクルードしたdiconファイルを用意していて、サブシステム単位でそれをインクルードして、さらに全てをインクルードしてます。
で、GUIでこれを出来たら楽という考えを持っています。その一方で、テスト用のdiconファイルを作っているのでそれを任意に出来るようなGUIが想像できないです。そこら辺のイメージが湧かないとGUIの評価も出来ません。
システムは多数の人間で開発するものですので、自分の変更がほかの人に迷惑をかけないようなファイル分割や、チェック方法や、排他方法を望みます。
それが可能ならGUIでもいいんですが。
>>476 ごめんなさい。書き込み内容の1/10も理解できませんorz
イメージとしては、GraphEdit(DirectShowFilterの接続をグラフィカルに
設定するMS製ツール)なんですが・・・・・・
dicon用GUIエディタをGraphEditの様なUIで表現可能なのかどうかが
先ず分かりませんorz^256
いや、別に単に「自分でファクトリつくるのめんどいなあ。S2でやっちゃうか」でも 十分に存在価値はあると思うんだけど。intercepter機能を一切使わなくてもね。 PHPはもうちょっとオブジェクト指向面で実績ができてからかなあ。 あと何でも連想配列でなんとかしていくのも俺は気持ち悪い。 Bean書く手間をかけても、そっちのほうがいい。それが俺のJavaを選んだ理由かな。
classファイルをドロップするとファイル位置を元にclassロードして、リフレクションで 完全クラス名を取得して自動的にdiconひな形作成して、GUIでプロパティ設定とか、 コンストラクタ設定とか、インターセプターとか設定できるようにすると面白そうだと 思う。 実現可能性(誰が作るのかとか)をとっぱらって考えると、こういうツールは敷居を 下げてくれるし、重要な要素だと思うよ。手書きで間に合ってる人はいらんだろうけ ど、手書きXMLに敷居を感じる人間もいるわな。すそ野を広めようと思えば考慮す る価値はあるよね。 俺はdicon手書きでもkijimunaでそれほど困ってないけど、正直GUIツールがあったら 便利だと思うね。チームの連中にdiconの概念を説明する手間が若干省けるし。
>>478 寧ろintercepter機能(S2AOPの事ですよね?)が使いたくてSeasarを追
っかけてます。まぁ、逃げられっぱなしなわけですがorz
例えば、今は単純なベタテキストのログを出力してるけど、将来的には
XMLで出力したい、いやいっそSYSLOGdへ出力したい、まてまてHTML
で出力してWEBブラウザで見るのも捨て難いぞ等と考えた時、それ用
のクラスを書いてdiconを編集するだけで、色んなログの出力が実現で
きるのだとしたら、とても便利そうだぞと、思ったんですが・・・・・・・
もっとも、この発想自体が間違ってる可能性も大アリなんですが(´д`;)
漏れはGUIよりも、XDocletで吐き出せる方が嬉しいな。 読み込み順とかも重要だから難しいかなぁ。
>>480 その発想は間違ってないけど、すでにApacheのLog4Jで実現されてるので
そっち使った方が早い。Log4JはSeasar自身も使ってるし。
あ、いうまでもなく、ログ出力の多様化の話ね。
今S2で作ってるシステムはS3が出たらどうすればいいんだ。すごく不安になってきたよ。
>>485 漏れはアンチSeaserだが、
バージョン間の互換性問題はどこの世界にもある話。
PHPは本当に酷かった。
>>485 だから、リファクタリングの原則だ。
これができてればバージョン上げるくらい楽勝だ。
Seasarの中の人も大変だな
>>487 売りであるS2Daoが全然変わっちゃいそうだから
リファクタリングというより作り直しになっちゃいう。
492 :
デフォルトの名無しさん :05/01/03 10:54:48
ひがたんは、ビジネスモデルとドメインモデルの違いを理解していない模様.
>>492 ドメインモデルもビジネスモデルもちゃんとした定義なんてないと思うよ。
もしかして、DDDの定義がちゃんとした定義だと思ってるとか。
494 :
デフォルトの名無しさん :05/01/03 12:44:45
ビジネスモデルはビジネスが成り立つことを表すためのモデル ドメインモデルもシステム化対象となる問題領域を捉えるためのモデル という理解ではだめか?
>>491 つまりSeasar3が作られたとしても、使うメリットは少ないってことだな。
Seasarという名のもとに違うコンセプトのものが語られて、開発リソースの分散と混乱をまねくだけまねいてあぼん、か。
先が見えたな。
>>496 藻前は、Seasar2もつかってないんだろうから、Seasar3も使わなくて良いよ。
ちなみに、Seasar2がでたときも、Seasar1と全く違うコンセプトのものだったよ。
ビジネスモデルをおもいっきし間違えてる。 ひがさんの言ってるビジネスモデルは「業務フロー」(ビジネスフローとでも言えばいいか)。 業務フローのなかで特有のモデルがドメインモデル。 常識的な範囲で、ビジネスモデルは儲ける方法のことだし。 煽り抜きで、ちょとがっかりした。
>>497 そのときは、Seasar1を捨ててSeasar2に移行したわけだろ。
まるっきりコンセプトを変えた新版を出して、旧版はそのまま継続って、そしたら新版使う理由なんかないよ。
開発リソースも限られてるわけだし、どっちかに偏らざるを得ない。
S2に偏るならS3は縮小していくし、S3に偏るなら移行のタイミングを与えられないままS2の利用者も減っていく。
違うコンセプトで同じ名前の2つのプロダクトを、混乱しないようにプロモーションする力があるようにも思えないし。
S3の必要性がわからんな。
S3なんかまだ誰も望んでない、手前のS2JSFを確実に仕上げてくれ。
>>502 禿胴。S3なんてことしなくてもS2EJB3でいいじゃんと技術に疎い漏れが逝ってみるテスt
>>499 > 開発リソースも限られてるわけだし、どっちかに偏らざるを得ない。
> S2に偏るならS3は縮小していくし、S3に偏るなら移行のタイミングを与えられないままS2の利用者も減っていく。
これはSeasarの開発陣の少なさを考えると杞憂とは言い切れんな。
取り巻き/応援団は結構多そうだが、実質開発リソースは1人だからな。
まぁ二兎追うものは(ry
EJBと比べてて思うんだが、S2で、アプリケーションサーバ(つまりS2Containerが動いている ところ)だけ物理的に別サーバに写そうと思ったらどうしたらいいのかな。 EJBだとJNDIとRemoteHomeとでリモートでのメソッド呼び出しに対応できそうだけど、 たとえばStruts+S2で稼働してたとして、負荷が高くなってきたのでS2で作ったサービス 層を複数サーバにして、合わせてStrutsのプレゼンテーション層と物理的に分離しよう としたとする。どういう方策があるだろうか。 おれがちらと考えたのは、Struts -> EJB -> S2 というように、間になんかリモート呼び出し に対応した層を挟むしか思いつかないんだけど。
S2Remotingってどうなったの? 一向にリリースの気配がないようだけど。
>>505 Webコンテナごと横に並べればいいじゃん。
>>508 プレゼンテーション層とサービス層とDBを物理的に分離したい、と言われることは
十分あり得ることだろう。というか別件で言われたんだよ。そういうときS2ならどうなる
のかな、と。
ところでS3のコンセプトって何だろうね。それが素晴らしいなら応援する。 S2がDI+AOPで生まれ変わったのは素晴らしかったと思う。 S3はDI+AOPを捨てさるような新しい何かを考えてるんだろうか。 漏れにはどうもS2の作り直しにしか見えないので不安だ。
>>509 そこまで分離したほうがいいシステムって、
どういうもんかなと思ったんだが。思いつきで言ってるというか、
システム派手にしたいだけな臭いがしてくるんだけど。
Rubyのtuple spaceの実装例はけっこう感動した。これを使えば
物理的にネットワークに繋げれば自動的にサーバ同士が連携して処理速度上げたり
クラスタリングのやり始めたり、というカッコイイことも可能だ。
そんなことやったほうがいいような機能を求める顧客には、会った事はないが!
>>511 ハードをたくさん売るために決まってるだろw
>>511 で、顧客は次にこういうのだ。
「ハード一台で済むシステム作れないかな。台数少ないから、予算は前の1/4で」
こういう素人を超えたITオンチが今のシステム屋を支えているのだ
なんのために生きてんだろ!
514 :
デフォルトの名無しさん :05/01/04 11:37:10
>>511 DBさえ多重化していれば良いという程度のシステムばかりではないんですよ.
515 :
デフォルトの名無しさん :05/01/04 11:59:53
ビジネスモデルでぐぐったがよくわからん。定義が曖昧ということはいえそう。 はぶ氏のも曖昧な中のひとつの自説ということじゃないだろうか。
大体ビジネスなんて言葉を使う時点で胡散臭いもんだ
>517 そこまで戻って話をせにゃならんのか? でもまぁ、身のある話をするにはそうなのかもしれないな。 でかい声で言ったもん勝ち、それを分かった気になったもん勝ちな業界だし。
大体コンテナなんて言葉を使う時点で胡散臭いもんだ
はぶ氏とひが氏が誰を指すかの定義もあいまいなのか・・・
この時期にS3の話を聞きたいと思う奴はいないよな。
「別系列」ってゆーけど、S2=前Version=時代遅れ、と認識する人が多いだろう。
しかも、順調に行けばGW明けにそうなる。
そーゆーS2をこれからもメンテする献身的な人がどれだけいるか疑問だ。
http://d.hatena.ne.jp/habuakihiro/20050104#1104805780 >Tiger対応とS2JSFリリースは、S3に関係なく最優先でお願いしたい事項です。
本音だろうな。他に頼む人いないし。
>この辺は主としてマーケティングの話になってくるんでしょう。
ぷっ。
やっぱりEJBでないとダメな局面があったのでは。 それが技術的なものかどうかは知らないが。
分散させる場合は、EJBがいいよ。 EJBは分散技術だし。 EJBが提案されたときは、分散システムが主流になると思われてた。 実際には、分散が必要になるシステムは、非常に限られていたってことだ。
分散厨は実践J2EEシステムデザインとPofEAAを読みなさい。
>>517 businessという英語を外来語として日本語化したときに、胡散臭さが付け加えられてしまったからな。
システムとかエンジニアとかSEとかマネージメントとかDIコンテナとか、似たような例はたくさん。
つまり業界全体が胡散臭いと。 まああってるかもしれん。
要はOAだよな。
OriginalAnime?
S3のコンセプトは「優しさと易しさ」じゃなくて 「J2EEにフィードバックすること」なのかな。
S3のコンセプトは「自己顕示欲」です。
531 :
デフォルトの名無しさん :05/01/05 10:17:01
>>524 毛唐のやつらは 複雑なこと VS. 簡単なこと
をポリシーなく立場を入れ替えながら争うのがそもそも好みですから.残念
なんかこのスレ文系臭い
行動を伴わなければ趣味でしかないような学びは雑学でしかない。 もしくは 人の仕事というのは趣味の延長でしかない
S2ともくーすとも関係ないな。ストーカー怖い怖い。
せくーすしたいなあ…
「関係者の掲示板に貼り付いてチェックしてるアンチ」 の図を妄想してる輩はBloglinesを知らないんだろうか。 まさか。
>>538 スレと関係ないことまでいちいち書き込むあたりが怖いってことだろ。
>>533 がストーカーかかまってくんか追っ掛けか知らないけどな。
540 :
デフォルトの名無しさん :05/01/06 11:28:21
>>535 彼はNIFTYのフォーラムにはまっていた頃からはったり雑学やろうでくちばっかりの
男でした.
>> 某スレ
酔うと伝票めくりをしていた時代からの成り上がり話をぐたぐた話すのは
いつもの十八番だ.たしかにうざい.
>540 句読点までこだわるとは、 手の込んだことをおやりになる。
>>540 一緒に飲んでるんだw
その場で説教してやれ
はぶヲチでスレと関係ない
こと書くなウザイ
その場で説教すると何がおきるのかな? だれか適当な聞き役をあてがって、その場を去るのが無難だね。
ヒガ氏、次のネタカモン
NIFTYの頃からヲチしてるて・・ S2周りの人大変だな。
にじみ出るふいんきは騙れませんよ。
547 :
デフォルトの名無しさん :05/01/07 18:33:36
S3の前に、S2のAOPをもうちょっと強力にして欲しい。AOPAlliance自体が まだしょぼしょぼだから仕方ないのかも知れんが、現状のS2AOPの程度では、 お子ちゃまみたいなログ取りインターセプタか、トランザクション管理 くらいにしか使えない。 AOPはその程度でいいんだ、っていうならそれでいいんだけど・・・
AOPはその程度でいい
AOPなんて見えないgoto文みたいなもん。 その程度で済ましとかないと保守不能になる。
AOPを駆使しまくって実装されたシステム、保守すること考えたら憂鬱だな。 どこでなにが起きるか把握するだけで疲れそう。
日経ソフトウェアで、だれかがAOPについて書いてたね。 読みながら、コワイコワイと思った。
AOPって結局なんなのかイマイチ分かってませんが、S2AOPに限れば 必要な時にdiconを開いてみるだけで済みそうに思うんですが・・・・・・ 大した使い方してないからそう思うのかもしれないけど・・・・・・
AOPはトレース埋める位にしないと。コミットとかロールバックを任せたら大変な事に。
>>556 ねたにつられるなよ。
トランザクション制御は、AOPに向いてる代表的な機能の1つなんだから。
>>554 ある処理で何が起こるか正確に把握するために、diconファイルのすべてに目を通す必要が出てくる。
なんで「すべてに」なの?
>>559 どこでどのオブジェクトにアスペクト仕込まれてるかわからなくなるから。
自分だけでコーディングするなら問題ないけどね。
ん〜 適切にdiconファイルを分けておけば、「すべて」を見る必要はないような…? まあ、あとはドキュメントとかコメントで対応するとか(アテにならん場合が多いけど)
>>562 オートインジェクションとか考えると。
適切に分けられてるかどうか確認しないといけないし。
ドキュメントは、コードがドキュメント通りになっているかの確認が。
自動的になにかするようなコードから追えないものは、オートインジェクションも含めて、コードを追うのが難しい。
追うのが難しいのは本質的にどうしようもない希ガス 管理手法の確立とそれの徹底をすればいいんだろうが、それだとコードとは 別なところに、全面的ではないにしろ大きく依存することになるわけだから、 それほそれで面倒な問題を孕むしな('A`) 管理とか保守をするのにソースコードとdiconファイルからインジェクションされてる 対象とその内容が簡単に視認できるようなツールがあるといいよなあ まあ、漏れは今のところkijimunaで間に合ってるけど、AOPを非機能要件以外 のあれやらこれやらに使いたかったりするなら、保守の難しさが軽減されるような 何らかの仕組みなりモノがないとさすがにやってられないだろうな
>>564 > 保守の難しさが軽減されるような
> 何らかの仕組み
それは、Seaser非依存OOPプログラミングだ
>>565 現状に満足してるなら、別にそれでいいと思うよ。
Seasarを使い込んでる人に聞きたいんだけど、もしかしてdiconてかなり巨大 なツリー状になる? メンテナンスが大変な事になってるdicon一式(実際の場面に即したdiconなら 擬似サンプルでも良くてclassとかの本体は不要)公開してもらえないですか?
>>567 いまの時点でSeasarを使い込んでる人って、いろんなことをちゃんとわかってやってるだろうから、メンテナンスが大変なことになってるdiconってないんじゃなかろうか。
diconって普通分割するだろ? 用途別にとか層別にとか。
>>567 「巨大なツリー状」と「メンテナンスが大変なことになってる」が、つながらないんだけども。
>>567 「巨大なツリー状」と「メンテナンスが大変なことになってる」が、つながらないんだけども。
論理削除ってわざわざS2Daoで面倒見る必要ってあるのかな。 もう一層上で対応するのが自然だと思うが。 やるんなら、0、1のフラグだけだと使えん。 通常はnull値で、削除すると日時で更新されるようにならないと。 がんばってください。
> プレゼンテーション層の革命のはじまりです。 そんな、革命的なものじゃないように見えるけど モアベター程度に見えるし、ほとんどの人は普通のJSPや普通のJSFで充分な気がする。
「多くの人が実際の能力以上のことができると思い違いをしている。 誰でも、ポップスター、高裁判事、有能なテレビ司会者に なれるかのように教師が教えているからだ」 チャールズ英皇太子
>>574 大したスキルもないくせにひが君と同等の立場で
語りたがるアンチへの嫌味ですか。
そうですか。
S2Dao のデバッグは sql を出力してくれるんだが、 必要な sql_quote がかかっていなくてsqlとして実行できないんだな。 sql がおかしいのかと思ってしばらくはまっちゃったぞ。 デバッグしにくいから、誰か気づいた人quote かけとくれよ。 おねげーしますだ。
>>576 sql_quoteって何。
文字列ならシングルコーテーションで囲まれていた気はするけど。
(・∀・)ハイーキョ
>>577 sql_quote ってのはあれだ、文字列の中にシングルクォートがあったら、
クォートしてくれるってことだ。
hoge'hoge -> hoge''hoge
そうしないと、sqlエラーになっちゃうだろ?
insert fuga(hoge) values ('hoge'hoge'); => era-
insert fuga(hoge) values ('hoge''hoge'); => ok-
>>579 バインド変数(/*hoge*/みたいな)を使えば関係ないんじゃないの。
SeasarとMayaの関係がよく分からないんだけど。
っつか、Mayaってなに? 仕様をがんばって作って、しょぼい実装ができそうなことだけわかったけど。
SPEEDってのもあるね 関係が分からない。 関係者の方々説明たのんます。
既出だったらごめんなんだけど S2JSFってHTMLを売りにしてるけど あれって拡張子が.htmlなだけで厳密にはHTMLじゃないよね。 サンプルで普通のHTMLまで変換されてたのが気になって... あれは拡張子htmlでいいのか?
拡張子なんて飾(ry
>>587 普通のHTMLが変換されたらなんか問題あるの?
そういやkoichik氏のとこでCGLIBをASMに置き換えたテストやってるな。きっかけは前スレの以下の発言。
http://pc5.2ch.net/test/read.cgi/tech/1092044210/571 >多少、建設的なネタを。ひが君 「cglib 遅せーから Javassist 使う」 とか言ってないで
>直接 ASM 使えよ。まー、バイトコードライブラリ作者は使う側のスキルはアテにしてないと
>思うけどな。
>
> 性能: ASM > Javassist(初心者向け) > cglib(初心者向けASMラッパー)
> > BCEL > SERP
で、実際にASM使ったら3割程度しか変わらんかったそうな。
591 :
デフォルトの名無しさん :05/02/07 23:06:04
3割向上って、結構凄いと思うが。
やっちゃいけないベンチマークの見本のようなコードだけど、この結果信用できるのか? 何もしないメソッドなんて動的コンパイル後実際に呼び出されているかどうかすら怪しい。
呼び出し速度を測る方法として、空メソッド呼び出し以外のいい方法ってある? ちょっと思い当たらないんだけど。
>>593 べつに、純粋な呼出速度計らなくていいだろ。
比較できればいいんだから。
>>593 >>592 は、アスペクト有る無しで15倍違うという結果は怪しいってだけで本題じゃないんだ。
(とは言っても、Sunのクライアントコンパイラはそこまでやらないはずなので
以下のオーバーヘッドを除けば、まず正しいと思う。)
で、本題のCGLIBとASMの比較。
コンパイル前(1)、コンパイル(2)、コンパイル後(3)、全部纏めて測定しているのはどうだろうか。
俺は3だけ欲しい。が、これは体感値だと言われればぐうの音も出ない。
そこまで望むなら自分でやれと言われれば、いやあ御尤も。
あげ
597 :
デフォルトの名無しさん :05/02/14 21:57:01
さげちゃった。。。
MayaってS2とは独立したフレームワークだと思ってるんだけど なんでSeasarプロジェクトで開発してるんだろう… 将来的にS2JSFの代わりに使うことを考えてるのかな? そういうところがSeasarとMayaの関係がよくわからないという 状況を生み出しているような気がしないでもない。
というか、Mayaがよくわからない。 なにか開発してて、開発が進んでるらしくて、HTML吐くあたりで動くらしいということしかわからない。 まるでジンジャー
2回目はおもしろくないぞ。
結局、ちょっと英語かぶれになればChengeLogも英語だけになって、「日本人が開発してるから情報が日本語」っていうことも満たされなくなるわけか。
正直、大言壮語に付き合うのがダルい。
確かに今は大言壮語かもしれない。 でも革命の初期ってそんなもんだろ? 俺はひがたんを信じているぜ!!!
笑う人は笑わせておけばいい
お笑いが流行ってますからね。
S2Daoはミもフタもない。 くーすはさらにミもフタもない。 ひが氏の英語はさらにミもフタもない。
えーっ、S2Daoはフタはないけどミはあると思うけどなぁ。 そういえば最近くーすってブログに書いてないね。
大言壮語は同感だけど英語で情報発信しようという姿勢はいいんじゃない? なにもないよりは多少おかしくても英語情報があったほうがましだと思う。 日本のユーザも大切にして欲しいとは思うけどね。
608の人生はさらにもフタもない。
>611 ミはなくないんだ。
>>610 ここでの問題は、単に英語の練習というだけで情報が英語だけになったってことだ。
>>613 MLには日本語でアナウンスすることになったから安心汁。
>>614 MLに情報流しログも見れるからサイトには情報いらない、という考え方?あいかわらず。
公式サイト。 で、そこから公式にリンクが張られてるseasar wiki。 最近のwhat's newには日本語での情報がない。
>>618 614に書いてないだけ。
seasar wikiも日本語でアナウンスするらしいよ。
あぁ、じゃ、まず英語で情報がでて、日本語はあとからゆっくりってことか。
2/9以降、Seasar本体とS2Daoの情報は、英語でしかwikiに書いてない。
>>622 過去のはあとからゆっくりじゃなくてもう日本語にならないんじゃね?
明日以降、過去のが日本語化されたら622のおかげ。
なんかMayaがすごいことになってきているね。
リリースがめちゃくちゃ早いことだけはわかるんだが、Mayaがなんなのか よくわからない。 TapestryともS2JSFとも違う、なんかのプレゼンテーション層フレームワークらしい ことは分かるんだが。
結局Seasar2が必要なんだよね? なんか、面白い機能を試すのにSeasar2が必要だし、Seasar2単体で試しても面白くないしで、壁が高い気がする。
JSP2.0でいいや。
>>625 Jasperに相当するテンプレートエンジンだとか。
JasperはJSPを処理するけどMayaはHTMLを処理するのが違いだとか。
TapestryやS2JSFとの違いは、Mayaはテンプレートエンジンだけで
フレームワークではないということだと思ってる。
だから色々なフレームワークと組み合わせて使うことが出来るのだとか。
>>626 MayaはS2とは独立に使えることになってるはず。
WebWorkと組み合わせて動いたってレポートがあった。
どこかにSpringとも組み合わせられるとも書いてあった。
>>627 Webデザイナと協業しないとかWebデザイナがJSP大丈夫な場合はそれでいいかもね。
>>628 あぁ、そうなのか。
だからJSPで全然不満ないんだ。
Webデザイナとは無縁だし。
>>626 そりゃSeasarの壁じゃなくておまいの「好奇心の低さ」と言う壁だべさ
>>630 別にそれでもいいけど。
Seasar2自体には興味はないし。
他に同じようなことができるものがあるなら、そっち試すだけで。
うんそうだね。だから631はこのスレに来なくてもいいよ。
壁が高い ↓ おまえがクズ ↓ めんどう ↓ 来なくていいよ っていう流れ、好きだなぁ。
634 :
デフォルトの名無しさん :05/02/27 21:20:21
たしかに3割向上だったら、大手をふって効率アップっていえるかも。
ところで、そこの効率アップって、アプリ全体の影響って大きいの?
まあ2.2はJavassistで決定みたいだけどな
>>636 もう公開されてるよ
早くなった実感がない
結論:JSP2.0 + EJB3.0 これ。
思いがけぬ結論にワラタ
> DIは理解するものではなく、体で覚えるものです。 宗教みたいになってきたな。
セガサターン白!
S2JSFはSeasar2なしでいけるの?
> RC1からS2JSF自体は、JSP1.2に対応したWebコンテナ(例えばTomcat4.1)なら動作するようになります。 じゃあ、これ、どういうこと? この文章見ると、S2JSFだけ使うなら、Tomcat4.1なら(他のライブラリなしに)動作するとも読めるんだけど。 というか、そう読んだんだけど。
>>644 EA7まではJSP2.0に対応したWebコンテナ(例えばTomcat5.0)が必要だったけど
その制限が緩くなったってことじゃないか?
「S2JSF自体は」と書いているのは、組み合わせるJSF実装なんかに制限される
場合もあるからだろうね。
いくらなんでも「他のライブラリなしに」は補完しすぎw
逆に、「S2JSF+Tomcat4.1」で動くという情報しかないから、何を補完して考えればいいのかわかんなかった。 Tomcat4.1なら動くっていうのも、じゃあ動かないのは?って考えてJSP1.1で動かないのはどうでもいいし、JSP2.0では動かないってことか?とか。 いままでJSP2.0で動いててJSP1.2で動くようになったなら「JSP1.2でも」だろ、と。 というか、「S2JSF+Tomcat4.1+なんかcommons系」くらいでSeasar2なしで動くようになったのかと期待してみた。
>いままでJSP2.0で動いててJSP1.2で動くようになったなら「JSP1.2でも」だろ、と。 それくらい補完しなよ。 >というか、「S2JSF+Tomcat4.1+なんかcommons系」くらいでSeasar2なしで動くようになったのかと期待してみた。 それならMayaに期待しなよ。 つーか、そんなにS2外したいのか?
> それくらい補完しなよ。
それで補完したのが「他のライブラリなしに」だったのさ。
>>647 > つーか、そんなにS2外したいのか?
選択肢としてね。
他のプレゼンテーションフレームワークを使ったらいいんじゃないか
>>649 いや、選択肢のひとつとしてね。
S2JSFだったりMayaだったりNirvanaだったりJSPだったり、それをS2と組み合わせたりSpringと組み合わせたり、コンテナ使わなかったり。
いろんな選択肢を考えれるようにしときたいし。
S2必須なら、S2JSFが他に比べて卓越してない限り、S2を使う前提でしか選択肢にならないから。
今まで細かいところで「これだとSpringに依存しちゃいますから!残念!!」とか言ってきたのに、 普通にS2が無いと動かないJSF実装を出すってのはどうなんだ。俺はダブルスタンダードに思えて 釈然としないんだが。
S2JSFはアプリじゃないから。 S2JSFのアプリはPOJOだからS2に依存しないと思うよ。
アプリはPOJOだからS2JSFにも依存しないと思うけど? HTMLに独自属性を埋め込むページテンプレートはS2JSFに依存するけど。
なんで事あるごとにSpringにつっかかるんだろうな。まるでMicrosoftのアンチLinuxキャンペーンみたいだ 有名にさえなれば、類似プロジェクトとの比較なんてJava系雑誌がくどい位やってくれるだろうに
MSのキャンペーンに例えられるとはまるでS2のほうがSpringよりもメジャーみたいだw
>>655 POJOだから依存しないっていうのがねぇ。
POJOだから依存しないっていうのは、ソースコードレベルの話だけだ。
結局それなしでは動かせない。
>>658 それを言い出すときりが無くない?
コンテナが無ければ動かせない、そもそもJavaのランタイムが無いと動かせないサーバが無etc.etc...
どのレベルまで依存を許容できるか、ってだけの問題にしかならない。
具体的にどうして欲しいのか言ってみなさいよ。
Struts→JSFのときみたいに実装と仕様を分けろってこと?
(S2の仕様だけ分離して、いろんな人が実装する…あ、それは面白いかもw)
または、Springでも動く(ってぐらい依存度の低い)S2JSFを期待してるのかしら。
それとも単にいちゃもん付けたいだけなのかな。
> それとも単にいちゃもん付けたいだけなのかな。 何をいまさらw
>>659 > どのレベルまで依存を許容できるか、ってだけの問題にしかならない。
いや、その程度の問題なんだが。
S2が無いと動かないってのはどうなんだ?っていう答えがPOJOだからS2に依存しないっていうのが、的外れだってこと。
だらかね、 最終的に動作する環境でいろんなものに依存するのは当たり前なの。 おまいはサーバも無いところにソースだけ納品してるのか? いちいち「依存してる」って言葉について説明するのも馬鹿らしいんだけど、 ここで言ってる「依存しない」は運用時ではなくて開発時のことさね。 特定のライブラリに依存しないPOJOで作れると何がよいって、テストが楽だし安全でしょ? あともう一つ勘違いしてるっぽいポイントは、 S2を利用するプログラム(例えばおまいさんが作る業務システム)が、 S2/S2JSFに対して依存度が低いって言ってるんであって、(←しつこいけど開発時のことね。) S2JSFがS2に依存しない何て話は出てないし話題にする必要も無い。 S2プロダクトシリーズであるS2JSFが、S2と密接に関連するのは当たり前だろう。 おまいはどんな世界を夢見てるんだい?
> S2プロダクトシリーズであるS2JSFが、S2と密接に関連するのは当たり前だろう。
だから
>>651 の意見が出てくるんだろ。
それで、POJOだから依存しないって、なんかおかしいんじゃね?
>>664 > それで、POJOだから依存しないって、なんかおかしいんじゃね?
どうおかしいんだい?
HTMLをテンプレートとして使うJSF実装でS2非依存のモノもあるんだから(MayaとかNiravanaとか)、依存するのが嫌ならそちら使えばいい話かと。
技術的なことはわからないけどひがタンに難癖つけたい奴がブログの粗探ししてるだけだ。 技術的なことを真剣に考えて言ってるわけじゃない。そもそもS2に依存するのが嫌なら最初からS2ファミリーには興味持たない。
>>664 「これだとSpringに依存しちゃいますから!残念!!」みたいな発言は
たとえばSpringのDataSourceUtilsとか、ApplicationListenerなどを利用させるような開発手法についての批判だった気がする。
だからPOJOだから大丈夫という回答になるんだと思うけど
S2JSFがS2が無いと動かないという話とは別物のような気がするけどな。
例えるなら、「SpringのMVCフレームワークがSpring無しで動かないのはおかしい」みたいな話になるのでは?
>>664 S2/S2JSFのアプリはPOJO
↓
SpringのAPIを使ってない
↓
Springでは動かない
↓
結局S2/S2JSFに依存してる
↓
POJOだから依存しないって、なんかおかしいんじゃね?
ということか?
それで咎められるべきはS2やS2JSFじゃないと思うぞ。
>>669 別にとがめるとかではなくて、そこでPOJOだからっていうのは理由になってないんじゃない?って言いたいだけ。
「依存してるけどPOJOだからロジック部分は再利用可能」
だったらわかるけど。
>>667 > そもそもS2に依存するのが嫌なら最初からS2ファミリーには興味持たない。
S2JSFは面白そうだと思うんだけど。
S2に依存するのが嫌なら興味持たなくていい程度の、他と大差ないしくみなの?
>S2に依存するのが嫌なら興味持たなくていい程度の、他と大差ないしくみなの? 他って具体的に何よ。半端な釣りすんなよ。
>>671 その、別物の方の話を
>>651 はしてるんじゃないの?
まぁ、
>>651 に関しては、S2Daoとかもすでにあったわけでいまさら言うことじゃないと思うけど。
>>672 Mayaとかちょっと上で話題に出てるんだけど・・・
別物の方の話をしてるってことは、つまり言いがかりをつけてるってことじゃないかw
なんか、変なやつが混じってるな。
つまりもなにも、いまさら言うことじゃないと書いてるわけで。
「そこでPOJOだから」はないんじゃないの?って言いたかっただけだ。
>>668 の前後入れ替えればいいだけで、意図はわかったからもういいけど。
最初に自分が「S2JSFがS2ないと駄目なのか」とか言い出したくせに 途中から「POJOだからはないんじゃない」と言いたかっただけだと すりかえておきながら変な奴が混ざってるとかいってる藻舞も変なヤシw
>>677 そりゃ、途中で「POJOだから依存しない」って言われたからさ。
>>677 変なやつというのは、「釣り」だとか「言いがかり」だとか、被害妄想的な煽り文句入れてるやつね。
で、結局POJOってのはハッタリだった訳だ。
それはそれで大切かと。 POJOであれば、ソースコード的には依存しないわけで。 そこには価値があると思う。
DI導入するだけで、こうもコードがすっきりするものかとびっくりするね。 俺はSpring使ってるけど
コンテナから生成するのはBCEのCだけですか?他はnewで生成する? すべてコンテナから取得するわけではないとどっかに 書いてあった気がしたんですが。うるおぼえですみません。
Bはアプリケーションコンテナ(Tomcatとか)が生成、EはCに対してDIで生成…で良かったと思うけど。
ひがたん.... プレゼンテーション層だけ、と限定しても未だにWebObjectsが最強だと思うんですけど。 仕事ではStrutsでいらいらするけど。
WebLogic最強説
Webber最速説
しかし、 S2JSFからS2をはずそうという発送が出てくること自体凄いよなあ。 そしたらS2JSFじゃないじゃんw つーか、そんなことをココで聞く前に自分でソースでも見てれば、そんなくだらない疑問はすぐに解決してこのスレが荒れることは無かったのに。 つーか、オープンソースなんだから。。。 ソース見ればすぐに分かるようなことを、クレクレしてくる奴はどうかと思うけどね。
>>688 すぐわかったあなたはえらい
自分で作ってみるまで良さがぜんぜんわからなかった…
Seasarはあまり触ってないけど、今月のJavaWorldに出てたS2JSFのサンプルを見てたしかに使い易そうだと思った。 来月のJavaWorldで特集組まれるみたいだし、最近JavaWorldはS2プッシュしてるね
S2JSFのエキザンポー、見たんだけど、 S2をいじるのは初めてで、S2JSFうんぬん以前に あまりにあっけないんで、逆にすんごい不安になってしまった。 今の出向先の自社謹製フレームワークがもうしんどくてしんどくて。 早いところ自社に帰ってS2で仕事したい。
はぶにっきの荒らしコメントが 全く誰にも気づかれずに未だにポツンとあるのが ちょっと笑った。元気が出た。
>>684 BCEのEはgetter,setterのみが幾つかあるようなものだと
思っているのだけれども、Eをコンテナから生成しても
意味なくないですか?
695 :
デフォルトの名無しさん :05/03/08 19:26:17
テーブルA B Cの三つがあるとして、 AとBがN:1、BとCがN:1の関係になっています。 Select ... FROM A LEFT OUTER JOIN B ON A.bid=B.bid LEFT OUTER JOIN C ON B.cid=C.cid としたい場合、Aのbeanクラスで private B bbean; public static final int bbean_RELNO=0; public static final String bbean_RELKEYS="bid"; private C cbean; public static final int cbean_RELNO=1; public static final String cbean_RELKEYS="bbean.cid:cid"; とすると、 Select ... FROM A LEFT OUTER JOIN B bbean ON A.bid=bbean.bid LEFT OUTER JOIN C cbean ON A.bbean.cid=cbean.cid ってなSQLが出力されます。 hsqldbなら問題無かったのですが、PostgreSQLだとAなんてスキーマは無ぇよ!って怒られます。 こういうときって本来はRELKEYSにどういう風に書けばいいんでしょうか?
だってMLは賢い人たちばっかりで、 漏れみたいなお馬鹿Qは投げにくいんだもん.....
全然お馬鹿Qじゃないと思うが。
699 :
太田@下宿 :05/03/09 07:33:39
お馬鹿Q!!爆笑
やっぱりお馬鹿Qだ…すみません、肝心なこと書き忘れてました。
>>699 ありがとうございます。
頂いたサンプルでは、SQLファイルを用意しているようですが、
SQLの自動出力は難しい、ということでしょうか。
最終的に吐かせたいSQLが決まってるならSQLファイルを準備するのがいいと思う。 多種RDBMSに同一ソースで対応したいっていうなら話は別だけど。
>>702 そうなんですか!
僕は寧ろ、できるなら自動でやる方が好ましいのかと思って、
がんばってSQLファイル削減してるところでした_| ̄|○
今後は躊躇無くSQLファイルを使っていきたいと思います。
ありがとうございました。
S2Daoの利点って、効率良く書かれたSQLをそのままDAOに使用出来るところだよ。 これができるのって、あとはiBatisくらいしかないんじゃないか。 逆にSQLを徹底的に隠す方向のO/Rマッピングなら、Cayenneくらい徹底的に隠して ほしい。 HibernateのHQLってそういう意味でなんか中途半端なイメージがあるんだよね。 クエリでSQLもどきをかくなら、もうSQL書かせてくれたらいいから、とか思ってします。
>>704 他のO/Rマッピングツールを使ったことが無かったので分からなかったのですが、
S2Daoの秀でている点というものが激しく納得できました。ありがとうございます。
といってるところにMLにタイムリーな話題が^^;
706 :
デフォルトの名無しさん :05/03/19 14:34:01
くーすのサイトってどこにあんの? seasar.orgにはみつからん。
Spring >>>>>>>>>>>>>>> seasar2 国粋主義者以外はSpringかEJB3.0だろ。
沖縄も外国じゃねぇの?
Java PressでSpringの大特集してるね。 Kijimunaも良いけど、SpringIDEはもっとすごいね。
つか、Springに対して、Seasarの優ってる点って殆ど無いし。
えー、そうなの? オートインジェクションが便利だよ。
直感的ではないファイル分割の挙動も素敵だ。
713 :
デフォルトの名無しさん :05/03/20 14:14:45
714 :
デフォルトの名無しさん :05/03/20 14:46:27
くーす本いつ出るのかなあ 話なくなったのかなあ
S2Strutsを試してみようと思って、StrutsUploadのファイルアップロード処理を 作ってみようと思ったんですが、org.apache.struts.upload.FormFileをActionFormに セットするのに失敗してしまいます。 java.lang.IllegalArgumentException: Cannot invoke org.seasar.struts.examples.form.UploadForm.setTheFile - argument type mismatch StrutsConfig.xmlはこんな感じです。 <form-beans> <form-bean name="uploadForm" type="org.seasar.struts.examples.form.UploadForm"/> </form-beans> <action-mappings> <action path="/upload" type="mylib.seasar.upload.UploadAction" name="uploadForm" scope="request" validate="true" input="/pages/uploadInput.jsp"> <forward name="success" path="/pages/uploadResult.jsp" /> </action> </action-mappings> どこが悪いのかわかる方お願いします。
UploadFormのsetTheFile()というメソッドを確認したほうがいいんでない?
717 :
715 :05/03/21 02:41:19
UploadFormはこんな風になってます。 public void setTheFile(FormFile theFile) { this.theFile = theFile; } FormFileは「org.apache.struts.upload.FormFile」で、UploadFormクラスは StrutsUploadのサンプルからもらってきたものなんです。 StrutsUploadの方だと、アップロードしたファイルやその情報をFormFileに 格納して、setTheFileからセットしてくれるんですが、POJO型のActionじゃ それは無理なんでしょうか。
typeがあってないわけだから Object型でうけてみて 何の型できているか確認してみたらどうでしょう
およそ忠告ほど人が気前よく与える物はない。 ラ・ロシュフコー
Java Press読んだんだがspringIDEたしかに(・∀・)イイ!! Kijimunanaにはがんばってもらいたい Java Worldのseasar特集はこれから読みまつ(`・ω・´)
>>721 SpringIDEはプロパティ名やクラス名の補完をしてくれないから
実際はそれほど役に立たない。
バリデーションはしてくれるけど。
仕事でSpringを使っているひとで、SpringIDEを使っているって
あまりきいたことない。
あの意味のないグラフィック表示が使ったことのないやつには
すごいように見えるのかもしれんが。
>>722 そうなのか…(´・ω・`)
とりあえずS2JSF正式リリースおめ
これで次のプロジェクトに使えるよー
SeasarかSpringか毎回悩むんだが、立ち位置が微妙なんだよな。 Springのほうが上を説得するのはやりやすいのが実情。 ほっとくと「なんか有名なんでEJBでよろしく」とかなっちゃうんでねえ。 もうちょっとメジャーになってくれるとやりやすいんだが、それはこれから の活動次第か。なんとかJavaWorldを見せることはできるようになったわけで。
結論としてはJSF+EJB3.0と
S2JSF+EJB3っていうのはどう? S2JSF必須ライブラリのためにseasar2にクラスパスは通しておくだけ。
「ITのイチロー」って名前で、別の人が雑誌に載ってたね
マルェー、ブログとソースがマニュアルですよぉー(゚ε゚)
730 :
デフォルトの名無しさん :2005/04/03(日) 17:38:34
こんな例外に遭遇した人いませんか?コードを見たけどなんでぬるぽになるのかわからない。 S2.0.22です。 java.lang.NullPointerException at org.seasar.extension.dbcp.impl.ConnectionPoolImpl$FreeItem.expired(ConnectionPoolImpl.java:244) at org.seasar.extension.timer.TimeoutTask.expired(TimeoutTask.java:59) at org.seasar.extension.timer.TimeoutManager.run(TimeoutManager.java:54) at java.lang.Thread.run(Thread.java:536)
731 :
デフォルトの名無しさん :2005/04/03(日) 18:44:58
がっ
733 :
ひが :2005/04/06(水) 23:26:44
もう、疲れました。 探さないでください・・・。
工エエェェ(´д`)ェェエエ工工
無事保護されて、連れ戻された模様です。 がんばれひがたん
HTML仕様にあってないものを拡張子htmlにして ビューとロジックを完全に分割できます、すごいでしょ なんて言ってるから日本人は仕様にかかわれないんだよ
以上、こんなこと言ってるから仕事を任せてもらえない
>>736 がお伝えしました。
結論:RELAX同様、信者以外には無視される運命。
設定ファイルの依存関係がわけわからんから、Springの方がとっつきやすい。
依存関係って、ただのincludeじゃん。
オートインジェクションに関わってくるわけだろ。ただのincludeじゃない。
いやだからさ、includeしてるやつを見れば分かるだろ。というかincludeといのは そういうもんだろう。 Springの定義の継承とくらべてそれほど特殊なコトやってるかな?
>>742 インクルードされる側にインクルードする側での定義が影響するというのは、特殊なことだと思う。
インクルードされる側(子)からはインクルードした側(親)の定義は見えないし影響もないよ。
オートインジェクションは?
むしろSpringでこそ子のBeanFactoryから親のBeanFactoryの定義が見えるわけだが。
BeanFactoryの親子関係と、定義ファイルの分割は別問題でしょ。
>>745 親で定義されているコンポーネントは子では見えないからオートインジェクションされない。
>>747 設定ファイルの依存関係という話だから全く無関係でもないと思うが。
子のBeanFactoryに読み込まれる設定ファイルからは親のBeanFactoryが
読み込んだ設定ファイルが見える、つまり依存する(かもしれない)わけだろ?
設定ファイルの依存関係がわけわからくなるのはむしろSpringじゃね?
Springの場合は、依存関係とか考えずにただ分割するだけだから。
>>451 それはBeanFactoryに親子関係を持たせるときの話で、定義ファイルの分割とは別の話。
ごっちゃにして考えるもんじゃない。
>>750 それって全部依存しあうってことだよね。いいことなのかな?
>>751 話の発端は設定ファイルの依存関係だろ?
一つのコンテナに読み込まれる定義ファイルの分割だけに
話を限る必要はないと思うが。
S2Container _container = S2ContainerFactory.create("/tmp/test.dicon");
ThreadDataInterface _thread = (ThreadDataInterface)_container.getComponent("threadData");
こんな感じで実行すると、
org.seasar.framework.util.ResourceNotFoundRuntimeException: [ESSR0055]リソース(/Users/tetsuyak/Desktop/EORelationshipDISample/test.dicon)が見つかりません
at org.seasar.framework.util.ResourceUtil.getResource(ResourceUtil.java:49)
at org.seasar.framework.util.ResourceUtil.getResourceAsStream(ResourceUtil.java:68)
at org.seasar.framework.util.ResourceUtil 以下略...
とでる。 test.diconは、
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
"
http://www.seasar.org/dtd/components.dtd ">
<components>
<component name="threadData" class="jp.test.SampleThreadData" instance="prototype">
</component>
</components>
と定義。パスは天地店名に誓って間違ってない。なんだろう……
>>755 /tmpをクラスパスに入れてcreate("test.dicon")とか。
>>755 create(String path)に渡すpathは、クラスパスをルートとしたパス名だぞ。
俺の予想では、/Users/tetsuyak/Desktop/EORelationshipDISample/ ってのがクラスパスの
指してるところなんだろう。
なんで/tmpが無視されてんのかはよくわからんけど、「tmp/test.dicon」(頭の/がない)だったら、
/Users/tetsuyak/Desktop/EORelationshipDISample/tmp/test.dicon を探しにいくと思う。
名前からしてWebObjectsか....
758 :
755 :2005/04/18(月) 00:07:53
どうもありがとうdeth。
>>(/Users/tetsuyak/Desktop/EORelationshipDISample/test.dicon)が見つかりません
この部分は正しくは、(/tmp/test.dicon) が見つかりません
です。別のウィンドウからコピペしちゃったものでした(恥
>>757 >>create(String path)に渡すpathは、クラスパスをルートとしたパス名だぞ。
ありがとうございます。もうちっと試してみます。
>>名前からしてWebObjectsか....
思いっきりバレバレです。ごめんなさい。
759 :
755 :2005/04/18(月) 00:32:51
ウマくいきました。
>>756 、757さんありがとうございます。
(ドキュメントをきっちり読んでから質問します)
Relax自体は価値があるけど、Relaxerであのソースコード自動生成とか、 図らずも Java ってダメさ具合を明確なものにしてるんだよね。 型を気にして無意味なクラスを作る気持ち悪さ、生産性の低下、これを実感できる。 Seaserも全く同じで、これもまた図らずも、Javaでのウェブ/データベースプログラミングの 向いて無いことを証明してる。なんでこんな複雑なもの覚えても、実際には スクリプト言語で見通しよく書かれたコードのほうが、よほど生産性が高くて堅牢だよね。
だからSeaserなんてないと何度言ったら(ry
762 :
デフォルトの名無しさん :2005/04/19(火) 01:25:28
とはいっても、動くシステムつくってサービス提供して安定稼働させて設けてる香具師がゴマンといるわけだから。そっちが勝ち組
後学の為にと思ってコンテナの部分だけをつまみ食いしてるんだけど なんか出来上がりが自作PCみたい(CLASSがパーツでDICONが配線) になってしまったんだけど、使いどこ間違ってる? 将来拡張するかもしれないと思われる部分にだけ、ピンポイントで使う のが正しい?それとも、もうあらゆる部分を全部個別部品として作って 最後にDICONで繋いで完成とするのが正しい? Seasarの使い方ではなく使われ方?上手く言えないけど、こういう例 ではこう使え!って感じのノウハウ集とかってのはないかな?
>>762 Springのほうか?
それとも、SeasarもSpringも使わないやつらか?
>>760 そうだね。だから君はこのスレに来る必要はないと思うよ。
>>765 誰もこの疑問に反論はできないし、それでも、生産性が上がることをアピール
したいために、作者は一生懸命に作ってるのも分かるのだけど、
でも、老婆心だけど、ここは、引き返す勇気を呼び起こすときだと思う。
やりたきゃやっていいけど、根本的な間違いがあるが故に、
やった結果何も残らないのだとしたら、なんかもうかわいそうだ。
ま、Seasarがどうこうはあるけど、DIコンテナ自体を「複雑なもの」としか思えないなら、スクリプト言語で見通しよく書かれたコードのほうが、よほど生産性が高くて堅牢だな。 DIコンテナを「複雑なもの」と思ったんなら、老婆心だけど、ここは、転職する勇気を呼び起こすときだと思う。 なんかもうかわいそうだ。
768 :
デフォルトの名無しさん :2005/04/19(火) 07:54:03
正直、DIは一時的な流行に終わる可能性大と思われ。 ちょっと前に流行ったSWTのごとく。
メタ議論で煽ってるのは荒し。 自分ではプログラムもできずに、 大規模プロジェクトに下請け派遣で入ってるだけの可哀想な人。 こーゆー可哀想なのにも半端仕事あてがってやれよw >> ISID
>>762 画面一つ作るのに 1人月以上かけて、しまいにゃ実装をオフショア発注しちゃう、ダメダメ現場かw
>>769 > メタ議論で煽ってるのは荒し。
どれをメタ議論といってるのかわからんが、その発言自体がメタ議論であることは確かだな。
ということはつまり、
>>769 はISIDに半端仕事くださいといってるわけか。
しかし、DIをSWTと同じように見てるところが底が浅いというか。
>>766 お前のせいじゃないから気にするな
心配しないでここから去れ
SWTは必要だが、DIは不用だよな。SWTには明確な実益がある。
SWTの明確な実益は、Swingの高速化で不明確な実益になった。 というか、いまどきSWTに明確な実益があるとか言いきってる時点で情報収集能力に疑問がでてくるね。
>>776 >SWT の明確な実益は、Swingの高速化で不明確な実益になった。
まぁ、Swingも悪くは無いんだけど、JFaceのContentProvider, LabelProvider, Decorator あたりの
アーキテクチャはモダンだと思ったし、やっぱりまだ SWT のほうが速いし、ウィンドウシステムに
対して忠実であるのはSwingとの明確な違いとしてあると思う。
ちょっと速くてもちょっと便利なところがあっても、全体的にはSwingの拡張性にかなわないしWindows以外では速いといえないし、資料はないしノウハウはないしツールはないし、デメリットで相殺されてしまう。 JDK1.4.1くらいまでなら、それでもデメリットに目をつぶれるような速度差があったけど、今はそこまでの速度差がない。 しかも、メモリやらリソースやら食うから、SWTの方が遅いこともありえるような気がする。
>>777 ,778
スレチガイウザス
ところで、S2JSF(だけに限らずSeasar2全般)のリファレンスマニュアルって作る気ないのかな。
皆あの中途半端な「サンプルの解説」だけで満足できるの?
俺一人なら、ソース読むなり何なりするのでいいんだけど、
チーム全員にそれを強要するのは、うちのチームじゃ無理だね。
本気でS2を普及させる気があるなら、バージョンアップより先に詳細なマニュアルを早く作ってくれろ。
779がつくればいいとおもうよ
>>779 「サンプルの解説」がダメなのにリファレンスなら大丈夫って
珍しいメンバーだね。
リファレンスだけあっても〜ならありがちだけど。
>>782 サンプルでは機能が網羅してないってことだろ。
網羅してたとしてもリファレンス性も悪いし。
>>782 違う違う。サンプル解説がだめなわけじゃないって。
サンプル解説のおかげで、
「S2JSF使えばどういうことが出来るのか」って言うのはよく分かったよ。
それはいいのよ。確かによく分かったしありがたいこってす。
でもね、いざ新しい物を作ろうと思うと、どういう部品がどういう風に絡み合ってるのか、
新しい部品を作るにはどうしたら良いのか、そういうことが全然わかんなくて、すぐ壁にぶち当たりまくり。
「どういうことができるか」はとってもよく分かるけど、
「どういう風に作ればよいのか」が全然わかんない。サンプルの解説だけじゃね。
ちょいと誤解してるようだけど、リファレンスだけあれば良いっつってんじゃないよ。
サンプルの解説も、リファレンスも両方(できればチュートリアルもw)欲しいって言ってるの。
>>781 ごめんね。100%完璧に理解してるわけじゃないからこそ、
リファレンス等のドキュメントが欲しいのよ。
俺必死だなw
ちょっと雑談させてよね。
>>784 確かに資料、情報は多いに越したことはないもんな。
多くの人に普及させたければ必要なことだろうと思う。
ただ、こういうのって必要と思った人が用意するって文化を推奨してる
から。君がぶち当たった壁をWikiなりなんなりで公開すると
みんなウハウハ・・と。実際はそんな理想的にならないんだろうけど。
作者の周りには人が集まっているようで、いろいろ仕事割り振って
うまく回っていると俺は思っているんだけど、プログラマがあまりしたがらない
全体の統一的なドキュメント化のような部分をやってくれる人が多数
参加するようになるともっと良いのかもしれないね。
それにはもう少し時間が必要なんじゃない?
もう充分時間が経ったわけで。 リファレンスの必要性自体を感じてないような気もする。 日本語情報が多いっていうのがひとつの売りということだったけど、koichikさんのSpring入門記の方がSeasarのドキュメントよりも充実してる気がするし。 ってか、サンプルとかその解説とかは部外者にも書けるんだけど、リファレンスは開発者じゃないと書けないんだよね。
それはそうと、SeasarもSpringみたいに、主要バージョンは取り込んでバージョン番号をつけてリリースして欲しいね。 バージョンの依存関係がわけわかめ。
788 :
784 :2005/04/20(水) 20:56:30
>>785 確かに協力してく気があるなら、
リファレンスは無理にしても、
「こんなのにぶちあたっちゃったの」は公開していくべきでしたね。
でも正直、ぶち当たりすぎちゃって既に嫌になってる部分もあったり…_| ̄|○ モウS2Strutsデイイモン
「ドキュメント不足」っていう理由のせいで、
S2JSFから人が遠のくなんてことは、実に寂しいことだと思うのです。
まずは人を惹きつけて…卵が先か、の話にはなっちゃいますけどね。
>>787 1行目は何言ってるのかわかんないけど、2行目は禿同。
その辺も、Seasarの敷居が高くなってる原因の一つだと思う。
結局ひがさんには、プロダクトを開発するセンスはあっても、プロダクトをプロモーションするセンスはなかったってことだよ。
>>789 漏れはプロモーションのセンスあると思うよ。
残念ながらSeasar は役立たずだけど、それでも雑誌の記事に載せるところまでは
到達できたのはたいしたもの。
Seasarのコミュニティがなかなか出来上がらないのは当然のことで、
もともとSeasarは実はあまり意味のない代物だから、分かってる人にしてみればスルーするだけだし
逆に、リテラシーの低い初心者が「分からないからドキュメントくれ」 が群れてくる。
いいプロダクトなら、リテラシーの高い人がチカラを貸すよ。カネになるってもそうだけど、
ちょっと頑張るだけで世界が変わるのを実感できる。
Seasarじゃ何も変わらないってのが、リテラシーの高い人には見えちゃうんだよ。
でも、開発者に全てを望むのは酷だよね。 開発されているものの価値を見出した人の中から広告塔になってくれるような 人が現れる流れがあると、自分らも楽しいと思わない?夢物語かなぁ。 作る才がある人が作ることにのみ集中できて、 その他の事をうまく分散できるといいのに。とか思ったりする。
>>791 Seasarが価値があるものならそれは人は現われるけど、そうではないのだから、どうしよもない。
>>790 的を射ているのかもしれない。
フレームワークなのだから、既にしっかりしたノウハウを持っている人の目には
今更…のように写ったりしそう。ただ、作成される多くのものが
そのフレームワークの作法に従うことで統一感が生まれて保守効率が
上がるような可能性はあるよね。それでは世界を変えるまではいかないけど。
プロジェクトとして推す時に「ここに詳細な情報があります」って言えることは
かなり大事じゃないかな。誰それのブログ端から読んでよってのはどうかねぇ。
情報は統一されていないと探しづらいと思うのだ。
これは、狙っている層がJavaの業務アプリだから特に思うこと。
>>790 雑誌の記事に載せるくらいでプロモーション力あるというなら、プロモーション力の敷居はかなり低いんだな。
>>793 作法には価値があると思う。
だから、Seasarはだめでも、「くーす」はなかなか、広める価値のあるものだと思ってて。
コントロールはステートレスとか、分かってる人にしてみれば、当たり前だろみたいなことだけど、
学習中はその徹を踏んでしまうかも。
オブジェクト指向プログラミングって、深い理由がわからなくても、OO的にデザインされた
ライブラリを使うことで自然に生産性上がるのを体感して意味もわかってくるみたいなこと
あるけど、ウェブ/データベースプログラミングにおいては、いまいち実感しづらいところもあって、
Seasar使えば分かるんじゃないかみたいな人いると思うんだけど、残念ながら、
これはいくら使っても体感できないんだよね。
作法は作法として覚えるしかないと思う。フレームワークが解決することとも思えない。
Javaはウェブ/データベースプログラミングには向いてないし。
ホントに原理がシンプルで扱いやすいフレームワーク/言語も含めたプラットフォームの
分かりやすいものだけが生き残る。
>>794 雑誌って基本的にアホで、特にソフト開発者向けの雑誌ってさらにアホなんだけど、
それでも載せるってのは、あほだからこそでもあるけど、そう簡単じゃないぜ。
>>796 自分とは思想が逆みたいなんだけど、面白いのでしつこく食い下がってみる。
作法はできる限りフレームワークで吸収してやる部分じゃないかな。
例を挙げちゃうと焦点がぶれたりする可能性があるので
逆にまずいかもしれないけど、StrutsなんてFrontControllerだよね。
これをFrontController知らない人でも強制的に使わせてるよなと。
覚えること、考えることを減らすためにフレームワークやライブラリは存在
すると思う。オブジェクト指向については流すよ。哲学論争になりやすいし。
>ホントに原理がシンプルで扱いやすいフレームワーク/言語も含めたプラットフォームの
>分かりやすいものだけが生き残る。
これには同意。特に多人数開発ではキーになる考え方だろう。
わかりやすくて、しょぼい開発者がいてもちゃんと動く仕組みが宜しいかと。
そういう意味ではJavaもDIもそんなに的外れではないかなと思ってる。
>>798 > しょぼい開発者がいてもちゃんと動く仕組みが宜しいかと。
> そういう意味ではJavaもDIもそんなに的外れではない
フレームワークに関しては、漏れは、
ホントにいいものなら、無いよりはマシくらいの位置づけで、
たぶん、ほとんどの人はそうでないか。
フレームワークでしょぼい開発者が救われるのかといえば、少しは寄与するかしれんが、かなり嘘で、
そんなもん、ただ開発プロセスの中に学習・フィードバックの仕組みが機能してるかどうかだけにかかってる。
だから、もうSeasarとかJ2EEとかSpringやらに騙されるな、近寄るなと漏れは知らせたいんだよ。
そっちのほうがはるかに社会的だと思わんか。
フレームワークが少しは寄与するっつっても、それはいいフレームワークの場合の話で、 Javaはもともとウェブ/データベースプログラミングに向いてないし、 Seasarとか評価してみたけどやっぱり使わないほうがマシなんだよ。
801 :
798 :2005/04/20(水) 22:47:13
ちょっと「作法」の意味がずれてしまっていたかもしれない。
>>793 の「作法」はソースコードの統一感としての作法で
>>796 以降の「作法」はもう少し価値の高いある種パターンのような
分野にまで発展した考えで論じられているね。
特に訂正は無いんだけど、確認のため投稿。
>>801 >793の「作法」はソースコードの統一感としての作法
まさかとは思ったけど、こういうのをフレームワークで縛れるとか思ってる人がまだ結構いるんだよね。
現実に目の当たりにすると、腹の底から軽蔑しますよ。
ホントにヒドイと思う。
>>799 > だから、もうSeasarとかJ2EEとかSpringやらに騙されるな
> 近寄るなと漏れは知らせたいんだよ。
> そっちのほうがはるかに社会的だと思わんか。
最後のこの部分しか読んでないが、この意見がアホなこといってることはわかる。
>>799 優等生的に答えると、フレームワークは設計の再利用だよね。
これは実装の再利用であるライブラリと対になっていると思う。
無ければ自分でその時作るだけ。だけどある程度良い設計、実装が
既に提示されているのなら利用した方が良いぞと。
既存フレームワークで救うのはしょぼい開発者の中でも
駆け出しの設計者になるだろう。あと、熟練者でもわざわざ0から
フレームワークを構築しなくて良くなるので時間の節約になるよね。
ドキュメント書かなくても良いし、既にそれを知ってる人はいきなり使うだけだし。
>フレームワークでしょぼい開発者が救われるのかといえば、少しは寄与するかしれんが、かなり嘘で、
>そんなもん、ただ開発プロセスの中に学習・フィードバックの仕組みが機能してるかどうかだけにかかってる。
教育の仕方をどうするかって話で解釈合っているかな。
もう少し上のレベルに話が広がってしまいそうなので流します。
>だから、もうSeasarとかJ2EEとかSpringやらに騙されるな、近寄るなと漏れは知らせたいんだよ。
>そっちのほうがはるかに社会的だと思わんか。
いろいろ書こうと思ったけど、まとまらなかったので質問してみる。
>>799 の開発ではどんなフレームワークを使っているの?
もし良かったら書いてみてくれないかな。その方が話がわかりやすくなりそう。
>>802 うーんと、言わんとしているところが良くわからなかった。
ソースコードの統一感って言うのは見た目の問題だから
「Strutsで作ってるよ」「あー、じゃぁActionクラスを継承すんのね」
みたいな部分という意味で書いたんだ。もう少し書いてみてくれないか?
>>803 自分はここ以外はそれほど的外れでも無さそうに思ってる。
>>805 Seasar使うくらいならPure Servletのほうがいいよ。
シンプルにやりゃいい。
Struts使うことでAction使うことが自明になるとしても、それが? って感じでしょ。
何の役にも立たない。なら使わないほうがいい。
ウェブインターフェースのアプリケーションなら、
Rubyが最適だと思いますよ。文字列処理が高機能、コードも短くて済む。
いい実装例だなと感じてるのは
http://www2a.biglobe.ne.jp/~seki/ruby/divip.html バックエンドとの分離も簡単シンプル、台数並べれば並べるほど比例して処理を分散する
みたいな仕組みも作れる。そのプログラミングも贅肉なしのライブラリが使えるし。
>>807 えーと、プロジェクトの中でみんなServlet開発をしているって意味かな。
それは開発のスピードが遅そうに感じるんだけど、自分だけだろうか。
StrutsのActionの話は、そういう部分を合わせないと理解が遅い人が
いるよねって話。逆にこんなもん合わせるだけでルーチンワークに
乗せられたりするものだったりもする。
自分は今までの話を「多人数で開発する」ということを念頭に書いてる。
これは、Seasarみたいなものが狙っているターゲットがそうだから。
紹介してくれたアプリも多人数で開発するようなものでは無さそうだね。
ちなみに、個人で使うなら今のS2を使わないってのは自分もそうだと思うよ。
一人でWEBサイト構築するならRUBYは触ったこと無いのでPHPかな。
共通部をまとめてるうちに結局自分用フレームワークできちゃうけど。
809 :
803 :2005/04/20(水) 23:44:20
>>806 あ、ほんとだ。
ってことはあれだね。
正しい意見を述べておいて、結論だけは正しくない意見にしておけば、正しくない意見を正しいと思わせることができるっていう高等技術。
>>807 Strutsは単にフォームへの入力をBeanに格納してくれるただのライブラリだ。
いくらRubyがよくってもまだまだ採用しやすい状況じゃないんだよね。 5年かもっと前のJavaみたいなもんで、ユーザとか元請けのSIerから 止められるのが普通じゃない? ちっちゃいところはいいかもしれんけど。 Rubyできるやつサクッと集められるとも思えないしね。 だから、ここでRubyが最適とかいわれても逃避にしか見えない。 Javaでどうするか、DIでどうにかなるのか、って所でスゲーやつの 話が聞きたいです。
>>809 いや、大抵は
>>803 みたいに最後だけ見て「こりゃだめだ」って切り捨てられる罠。
そろそろ筆置きます。
長文連発すまなかった。>スレの人々
あと、S2から凄く離れてしまってすまん。
長々付き合いありがとう。
>>807
>>788 >>787 が1行目で言いたいのは、
メジャーなリリースと、マイナーなバージョンアップを分けてほしいということかと。
814 :
787 :2005/04/21(木) 01:51:04
>>813 いや、S2StrutsとかS2JSFとか、全部含んでSeasar2.x.xとして出して欲しいってことです。
S2JSFのこのバージョンはSeasar2.1.8じゃないと動きませんよ、とか、でもS2XXXはこのバージョンでは動きませんよとか、わけわからん。
XMLファイルで生成物を変更できる小洒落たファクトリーとしてしか理解できてない んだけど、十分に単純で便利だと思うんだが・・・・・・ なんでここでは否定的な意見の方が多いんだろう?
簡便なものが実用可能となると決まって反発がある。 そんな感じじゃないですか。 eclipseからJava始めた人はクラスパスとか 判ってなくてけしからん、とか。 俺は知らなくてもできるんならそれでいいし トラブルになったらその時に調べて 覚えりゃいいと思うんだがなあ。
>>815 この理解で概ね合っていると思っていいよな?駄目だったら頭いい人突っ込んでくれ。
AbstractFactoryにしたくなるような生成部分を統一的な方法で提供しているって
理解なんだけど。
>>815 それならSpringの方が日本語の資料も多くて便利
>>815 ここで小難しいこと言ってSeasarだめ論(もっと言うとJavaだめ論)を展開してる人って、
案外そういう簡単なことが分からないのかもね。
難しく考えすぎと言うか。
>>818 それは好みの問題でしょう。
>>819 Seasarの説明に、次世代どうのこうのとか小難しく書いてあるから。
>>814 S2とS2Daoと、あと戦略商品としてS2JSFをバンドルしてくれればいい。
個人的にはS2Strutsも。
koichikさんレスアリガd
>>807 > Seasar使うくらいならPure Servletのほうがいいよ。
> シンプルにやりゃいい。
シンプルっていうよりサンプルしか作ったことないとか?
まともに開発したことあるやつとは思えない。
> バックエンドとの分離も簡単シンプル、台数並べれば並べるほど比例して処理を分散する
> みたいな仕組みも作れる。そのプログラミングも贅肉なしのライブラリが使えるし。
後ろが分散できたってしょうがないだろ。なんか素人くさい。学生?
>>821 標準セットパッケージみたいな感じだよね。
これ一個でとりあえず美味しい汁を吸えますみたいな。
>>823 まぁまぁ、そう反応しなさんな。
見てる切り口が多分全然違うのだよ。
>>823 Strutsすら必要ないなら、Seasarも使わずServletに処理ベタ書きの方がいいってことじゃない?
仕事にはいろんな規模のものがあるんだから、それはそれでいいかと。
>>824 S2JSFがSeasarのコンテナ機能を使わずUtilだけ使ってるんだったら、UtilをわけてS2+S2DAO+Util/S2JSF+Utilというふたつのパッケージでもいい。
>>826 もちろんそれはそれで良いと思う。
けど、だからつって物知り顔で「誰にとってもフレームワークひいてはS2イラネ」って言うのはどうかと思う。
あんだけ自信満々で言われちゃうと、漏れみたいなお馬鹿チンは「本当にいらないのかな…」って不安になっちまう。
自分は今有効に使えてるのにね。
>>829 残念だけど、その取捨選択は君がするしか無いと思うよ。
人の言っていることを盲目的に受け入れるべきなのかそうでないのかって
ことだから。ここの人は自分が思うことを好き勝手に書いているだけだし。
>>790-
>>807 みたいにちゃんと突っ込んだ話をしないとその根拠が
明白にならないからなかなか判断しようが無いのだけれど。
で、自分は彼の話がごく一部しか捉えていないようだと判断した。
>自分は今有効に使えてるのにね。
これを根拠に「自分には必要だ」でも良いんじゃない?
831 :
デフォルトの名無しさん :2005/04/21(木) 20:39:58
>>819 日本語資料の多寡は「好みの問題」ではありません。
Tapestryが好みでしか使えないように、Seasar2も好みでしか使えないと。
またTapestryが何者だか訳分からんのだよなw JAVAはフレームワーク多すぎ!て言うか、なんでもかんでもフレームワーク って呼びすぎ! 俺のこれまでの知識では、「フレームワーク=湯の張られた鍋」と理解してた。 具材を入れていくと料理になるという、そんなイメージ? でも、JAVAでは制御の反転が絡むと全部フレームワークって呼びやがる。 Seasarでどんな料理が出来上がるのか、10日も探し回っちまったじゃねぇ〜か! 当然、それだけでは料理になんかなるわけねぇ〜!そもそも、鍋ですらねぇ〜! どっちかっつぅ〜と、やかん?とにかく、俺の馬鹿_| ̄|○|||
Seasarってフレームワークだっけ? 最初からIoCコンテナ(DIコンテナ)としか言ってないような。やかんどころかコンロですな。
>>833 コールバックを含むライブラリのことをフレームワークと呼ぶのだよ。
>>834 分かってる人ほどSeasarをフレームワークとは呼ばないみたいな印象は
ある。て言うか、変な人ほどフレdjさkljfsぢjfさいjふぉいj
やかんの心は、冷たい液体から温かい液体を生成するファクトリー
>>836 >
>>834 > 分かってる人ほどSeasarをフレームワークとは呼ばないみたいな印象は
JARの名前がs2-framework〜である件について
Apache AvalonがFrameworkを名乗るからには、SeasarだってFrameworkって名乗ったっていいだろうなあ。 Avalonは(Jamesみたいな)サーバアプリケーションを作成するためのフレームワークと銘打ってるけどね。
>>838 Seasarの場合は、S2Daoとか周辺を含まずにフレームワークなわけで。
>>839 Avalon Frameworkだって周辺も何も含まずにフレームワークを名乗っていた。
あれはコンテナとコンポーネントのコントラクトを規定しただけのライブラリ。
Avalon Excaliburがコンテナの実装、Avalon Phenixになるとサーバ
アプリケーション用のフレームワークという位置づけになっていたかと。
Marlinはよーわからんがそうやって発散してお亡くなりに…
まぁ、分類は学問的なこと考える人たちがすれば良い訳で。 分類の根拠がなんなのか位は抑えておいてもいいだろうけどな。
テンプレートメソッドなクラスがあれば、フレームワークなのだよ。
とゆーか生Servletだってフレームワークだし
DIコンテナって、いろんな実装があるけど・・・ 俺も学習用につくってみてもいいか?
>>843 それは文字通りのフレームワークだと思う。
ファンクタを要求する単体のオブジェクトはどうなんだろう?
IoCを伴ってはいるけど、これをフレームワークと呼ぶのに
は激しく抵抗を感じる。
>>845 いいんじゃない?
DIコンテナという言葉こそ出てこないけど、JAVAの格言に
は、抽象ファクトリーパターンと動的クラスローディングの
組み合わせ例として、iniファイルを利用したDIコンテナが紹
介されてる。
>>845 いいよ。
AOPまで実装すれば、とりあえずSeasarの対抗馬としてプロモーションできるし。
ドキュメントとメディアの取り込みさえできれば、すぐ広められる。
ただし、そういうプロダクトを運営するのには、結構手間がかかるし、覚悟がいる。
>>847 SeasarやSpringと張り合おうなんて気は毛頭ないから安心してくれ。
あくまで学習用だからきれいでシンプルな実装をしたい。
>>848 俺はそういう取り組みの繰り返しが将来の技術力を養うと思う。頑張れ。
>>848 そしたら、機能的にはPicoContainerとかをまず見てみるといいかも。
>>849 おいらはいい加減おっさんだが35歳で限界を迎えないように精進するよ。ありがとね。
>>850 Spring、Seasar、PicoContainerあたりの実装は確認済み。
PicoContainerのシンプルさは好きだね。
で、CgLibとjavassistの比較してるサイトとかしらん?
>>851 >で、CgLibとjavassistの比較してるサイトとかしらん?
ここらへんってちょっと前にSeasarでも話題になってたし、はてなでもいって探せば
参考になるサイトとか出てくるんじゃねー
>>817 AbstractFactoryが必要な部分ってシステムのコアに相当する部分で、
ここは自由にプログラミングできてしかるべきところを、
言語の非標準機能を使ってまで、統一的にする意味あんのかってあたりが微妙で、
テストしやすいとかいってるけど、これも結構あやしいと思う。
要するに、モックオブジェクトを返したいってことなんだろうけど、
冷静に考えて、それを作りたいシーンって、ホントにシステムのコアに相当する部分で、
ごく一部であって、そこをフレームワークにまかせてどうにかなるってことも、
無い気がする。有効なシーンがあれば教えてほしい。
>>853 もうフレームワークって呼ぶな。話が無駄に混乱する。
有効なシーンも何も、幹と枝葉の相関を切りたいという要求は
普通にと言うより普遍的にあるはずだが・・・・・・
>>854 切りたい欲求はそんなに無い、あったとしても、
そこはそのアプリケーションに合った適切な切り方をしたほうが
DIコンテナ機構を使うよりいいってこと思うんだけど
>>855 > そこはそのアプリケーションに合った適切な切り方をしたほうが
「アプリケーションに合った」部分をDIコンテナは侵食しないぞ。
あなたの設計だと、Factory部分のコードがアプリケーションによって変わってくるのか?
かなりひどい設計だと想像するけど。
俺はもう説明を諦めたんだが・・・・・・
>>856 どう言っても無駄だと思うぞ。
変な話だが、円滑なコミュニケーションにデザパタがどれほど大き
く寄与してるか実感した。
JAVAで会話可能な相手なら、「DIコンテナの利点は抽象ファクトリ
からコンパイルへの依存を排除できる点」だよ。
で、説明は終わりなんだよな。
多段に積み重なった知識の最上段のみを対象に会話を進めていく
って行為は、モードの違う相手とはチャンネルが合わないんだなとw
>>857 > JAVAで会話可能な相手なら、「DIコンテナの利点は抽象ファクトリ
> からコンパイルへの依存を排除できる点」だよ。
> で、説明は終わりなんだよな。
使ってるやつはそれで説明が終わりと思ってて、使ってないやつにとってはそれでは説明になってないと思う。
DIはパターンとしては優れてると思うんだが、 SeasarにしてもSpringにしても使うのちとめどい・・・ Picoのほうが個人的には好きなのだが、それほど使われてない模様 SeasarにコアのDI以外にも便利な機能って何が入ってるのさ S2Strutsはそれほど便利でなかったし、 JDBC連携もDbUtilsとかで代用できんの? ともかくXMLの設定とかめどい
AOPのこともたまには思い出してやってください…
>>856 >Factory部分のコードがアプリケーションによって変わってくるのか?
ソフトウェアの核になる部分って、やっぱり
キャッシュを解放するタイミングとか、ログの取り方、バックアップの取り方、パフォーマンスの計測とか
いろいろやることがあって、変わるに決まってると思うのだが
もう、なんつーかさ、スルーしとけばいいのか?
>>859 XMLがめんどいというやつは、Springをちょっと使って、
Seasarを使ってないやつに多い。
Picoがいいというやつは、最近あまりみたことないが、
PicoよりはSeasarが簡単だろう。
同じようにコンストラクタによるAutowireができて、
classを登録するだけですむんだから。
APIをじかにたたく分には、SeasarもPicoもあまりかわらない。
>>861 ファクトリーは生成のパターンだから構造や制御とは無関係だよ。
>>862 頭がツルツルなのがきたら、スルーでおっけ
某所のコンサルで、 factory method数≒全クラス数 ただしfactory methodは大抵singletonを返す ってのが居た。あの類だろw
>>864 フツーにnewするのがナニが不満なのか。
なんでもないところにAbstractFactory用いる意味は無い。
もしAbstractFactoryを導入する価値のある個所があるのだとすれば、
それはシステムのコアであるから、どっちにしろ、ここは自由にプログラミング
できないと無意味である。
つうか、じゃあ今のEJB使ってロジック層作ってみれば、なんでDIコンテナが出てきたか なんて、1日の試用でわかるんじゃねえの? EJB使った上で、DIなんて無意味非効率めんどくせえ、 とかいうやつがいたら、どっかいかれてるとしか思えん。
ソロプログラマでRAD使いの臭いがプンプンするな。 て言うか、十中八九こいつVBプログラマだw
870 :
866 :2005/04/26(火) 01:35:32
>>868 あれだね。
EJBを必要と思わなかったら、まったく意味のない比較だね。
めちゃくちゃめんどいEJBがめんどいDIになっただけということ?
>>871 そりゃそうだろ。DIコンテナが生まれてきた経緯を考えると、EJBへのアンチテーゼ
そのものなんだし。解決しようとしてる土俵で比較するのが筋じゃないか?
めちゃめちゃしんどいEJBが楽なDIコンテナに変わったってことだろ。
EJBはめんどいけど、コンテナのインスタンス制御機能(つまりファクトリとしての機能)や、
コンテナ制御のトランザクションなんて機能自体は必要なんだよ。そのために苦労して
EJB使うわけで。
DIコンテナはその両方を簡単に解決するじゃん。DIコンテナよりも簡単にEJBの機能を
提供してるものがあるんだったら、おれはすぐにでもそっちに乗り換えるよ。
つうことはEJB3がでりゃSeasarは必要ないってことだね。
そうか?
DIコンテナ機能あるし、簡単に使えるツールも出るだろうし。
XMLで定義する意味っていえば、 XMLはツールとの相性のよさってのがあって、 人間にも読めて機械にも読めるフォーマットとして意味があると思うんだけど、 なんつーか、DIコンテナなんつーものは、 本来はプログラミング言語が兼ね備えているべきレベルでの単純すぎるオブジェクト生成 にしか使えなくて、フツーにnew するのと変わらん。そんなのに意味あるか。 むしろそういうことなら、Eclipseのプラグインアーキテクチャにおけるxmlによる、 読み込むクラスの定義のほうが、価値があると思う。
>>876 XMLでの定義がいやなら、アノテーション。
S2GroovyBuilderもあるぞ
>>876 >本来はプログラミング言語が兼ね備えているべきレベルでの単純すぎるオブジェクト生成
>にしか使えなくて、フツーにnew するのと変わらん。そんなのに意味あるか。
このあたりが何を言いたいのかもう少し知りたい。
それと、どんなアプリを作る人なの?
この辺の違いがわかると話が噛み合ってくると思う。
>>873 正直、EJB3は全く追いきれてないんだが、DIコンテナ+AOPという小さな
機能部品としてのSeasarには需要が残り続けると思う。
>Eclipseのプラグインアーキテクチャにおけるxmlによる >読み込むクラスの定義のほうが、価値があると思う。 いや、それがDI(Dependency Injection = 依存性の挿入)でしょ? コンパイルへの依存性を排除できるって、そういう事だと思ワン? 「価値があると思う」って、思いっきり認めちゃってるみたいだけど・・・・・・ えと、どういう事?DIコンテナは認めるけど、Seasarは駄目って話? て言うか、スレが進むうちに段々DIコンテナの利点が分かってき たんじゃないか?別に無理繰り否定する必要はないんだぞ?
>>881 それを一般アプリケーションに広げる価値はないといってるのでは?
EJBもめんどいと思うがDIも十分めんどい もっと楽な方法が出てきそう
>>881 DIをするための方法として、一般的にDIコンテナと呼ばれている物の
方法は良くないと言いたいのかねぇ。
あ、違うよ。きっと彼はプラグインがDIだってわかってなかったんだ。
むしろそういうことなら、こんな不毛な議論なんかやめて
別の話したほうが、価値があると思う。
>>867 >>876 「AとBを結びつけるときに、その結びつきがAやBの中に直接埋
め込まれているのではなく、Cがその仲介をしてあげてくれると
AとBの実装がお互いに依存しなくて嬉しい」
っていうのがDIのありがたみだと思うのだけれど、これ自体には
異論はないのかな。
それともこれ自体に異論があるのか?
で、DIコンテナは上記のCにあたるところを一括して面倒みてく
れるのだけれど、その方法として「AやBの生成を請け負う」とい
うやりかたをしているため、その副作用として「生成したものを一
定の方法で改ざんできる(=AOPを適用できる)」というメリットが
出てきていて、そこが個別にAbstractFactoryを用いるのとは決
定的に異なるのかなと。
>>885 あらたにCを導入して依存関係を複雑にしてるだけにも読めるが。
ともあれDI使ったところでAとBは依存するし、使わなくても実装が依存しないようにできるし。
アンチDIさんにはそろそろDIレスな素敵な実装キボンヌ
具体的な提案もないし、いちゃもんつけてるだけの厨にしかみえん つーかスレ違いだ。DIスレでやれ
>>886 インターフェースに対しても同じ様な反応があるな。
AクラスとBクラスがそれぞれCインターフェースに依存してる。依存関係を複雑にしてる
だけなのではないか?と・・・・・・
「インターフェースに対してプログラミングする事でクラス間の依存性を排除できる」とい
う教科書的な説明は、間を省略し過ぎてて実は説明になってない。
インターフェースに対してプログラミングする事で直接的に排除できるのは特定のクラス
型に対する依存性で、これを排除しようとするモチベーションはJAVAが多重継承をサポ
ートしていないという点から湧いてる。
例えば、スレッドの実現にそのサブクラスである事を要求されたら?コールバックを実現
するのに特定のクラス型を要求されたら?インターフェイスを用いてクラス間の依存性を
排除するとはこういう事を指してる。
DIについても同じ視点から考察してみてほしい。教科書的な説明よりも、もう少し詳細な
視点で、DIが本当に排除してる依存性とは何なのかと、俺なりの視点については明日の
晩にでも書くつもりだけど、先ずは自分なりに考えてみてほしい。
>>881 コンパイル依存排除が目的っていうなら、それは無意味だ
拡張するためのアプリケーションで、拡張方法が明確に定義されているときのみ、
xmlでインスタンス化する対象を定義する意味があるのであって、
一般的なアプリケーションでわざわざxmlを書いてインスタンス化するもの
決める必要な無い。
>>889 Javaにインターフェースがある理由って、ハッキリ言わせてもらうと、型が合ってないと
コンパイルエラーで実行前に知らせてくれるっていう、それ以外にありえない。
インターフェース無くして、実行時にメソッドの有り無しのみでポリモーフィズム
やっても、問題は無いでしょ。
デメリットはコンパイルエラーが無くなってちょっとエラー発見が遅れることなのであって。
DIが排除する依存は、オブジェクト間の依存であってクラス間の依存は排除されない
Seasar無関係の話(例: DI, Interface, 初心者質問, その他信念表明 等)は、 それぞれ別スレでやるべきですね。
DIはSeasarとは無関係です。 InterfaceはSeasarとは無関係です。 初心者はSeasarとは無関係です。 さすが、閉鎖的なことで定評のあるSeasarです。
スレ違いと誘導するよりも、進んでネタを振りましょうw
Seasarに関係したい奴が絡んでるだけか
郵政民営化とSeasarはもちろん関係があるし、意外と知られていないが後藤真希の胸がGカップまで巨大化した件は依存性の注入という点からみると非常に関係が深い。
(; ・`д・´) !? (`・д´・ (`・д´・ ;) な、なんだってー!?
注入!どひー
これだけは言わせてくれ
>>896 そういう無意味な煽りが、余計にウンチを産んでるのをいい加減分かれよ。それともおまいもアンチSeasar/DI?
で、
>>890 >>インターフェースがある理由
理由はそうであれ、そこを原点にして様々なメリットが生まれてる。
あと、遅れるのは「ちょっと」どころではないぞ。規模が大きくなればなるほどね。
テスト段階でも発見できなくて、稼動後に発見なんて可能性も大いにある。これは大問題だ。
901 :
デフォルトの名無しさん :2005/04/27(水) 22:25:54
結論:EJB >>>>>>>>>>>> DI
動的型付けができないからインターフェースがあるですよ EJB3は素敵ですよ Seasar2はS2Daoが素敵ですがS2JSFはいうほどではありません。
----------------------------------- チンパンジーのアイちゃんが 書き込んでいます(はぁーと (霊長類研) -----------------------------------
しかし、ジャバワールドのインタビューの写真、特集1日目のブタと3日目のクマに入れ替えても誰もきづくまい。
@ITってネタをベタにするメディアだからなぁ 局所化してデバッグしやすいとかいって、 DIのメリットとオブジェクト指向プログラミングのメリットを すり替えしてんじゃん。 こんなネタに騙される奴なんか顔も見たくないよ。
909 :
デフォルトの名無しさん :2005/05/05(木) 22:48:43
>908 >局所化してデバッグしやすいとかいって、 >DIのメリットとオブジェクト指向プログラミングのメリットを >すり替えしてんじゃん。 禿同。 最近そこんとこを勘違いしてる人が多いよね。 まあ、勘違いであろうがなかろうが、テスタビリティの高い(=高凝集で疎結合な)プログラムが作られることは大歓迎。
>最近そこんとこを勘違いしてる人が多いよね アンケートとったんかよ、わりゃ(激笑
>>910 周りがよっぽど優秀か、
それとも業務以外に興味がないかどちらかですね
不吉な匂いがするな。 はやくOO抜きでAOPできるようにならんと、 またOOの二の舞になる予感がする (判ってないのがデタラメを広める)
(俺って、なんで訳判んないレスにいちいち返答するんだろう・・・。)
あ〜、今日も中身ねぇ〜
>>912 OOの二の舞ってことは、すごく普及して当たり前になるってことか。
916 :
デフォルトの名無しさん :2005/06/02(木) 01:47:53
(・∀・)ハイーキョ
一ヶ月近く発言無しだったんだな。 まあ本家にもこれといった動きは無かったしな。
露出に一生懸命だね。
>>917 なんかいろいろあったみたいよ。なんかいいたそうだよ。
すなあそびとか決まったときにいろいろ人に言えない話が決まったんじゃないの?
そまつなもの。
ウホッ
男だらけのシーサープロジェクト、ぽろりもあるよ♥
ふと思ったけど、seasar.orgに載った雑誌・記事の一覧があると嬉しい。
わ〜いヽ(´ー`)ノ でもリソースからたどれねぇですよ。
あ、見れた。キャッシュしてたかな。
どうでもいいけど、JAVA PRESSとかWEB+DB PRESSは、全部大文字じゃね?
下らない指摘だな
S2Container#getComponent(Object)はなぜ引数がObjectなのでしょう? getComponent(Class)とgetComponent(String)のほうが自然な気がするのですが。
別に意味はないような気がする。気がするだけだが。 引数としてはどうせ定数かリテラルしか使わんだろうし、分けた時のメリットもデメリットも余り無いってのもあるかと。
ひがやすをさんを生で見てきた 結構好き
ISIDとか三井情報開発とか、結構よさげな会社だなぁ。 あんな所でマターリとオプソ開発したかったな
>>936 何かイベントがあったの?
それとも内輪のミーティング?
S2Daoで public class Foo { public static final String TABLE = "foo_table"; // properties and accessors } public class Bar extends Foo { public static final String TABLE = "bar_table"; // properties and accessors } public interface BarDao { public static final Class BEAN = Bar.class; public int addBar(Bar bar); } こんな感じの継承されたDtoクラスをBEANとしてBarDaoを定義した場合にTABLEが親クラス(Foo)の値を使ってしまう。 BeanDescImpl#setupField()でClass#getFields()が親クラスのTABLEフィールドも一緒に返してしまうのが原因だと思うけど。 小心者なのでMLじゃなくてスレに書いてみる。
エンティティクラスの考え方からして、 親と子でTABLEアノテーションが変わるのは 違和感があるけどなあ。 あーでも最近は継承テーブルとかいうのもあるんだよな。
フレーミングキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
(゚Д゚≡゚Д゚)ドコ??
[Seasar-user:2241]付近
スレッド中13/26個のメッセージが同一人物とは、 随分な粘着っぷりだな(藁
948 :
デフォルトの名無しさん :2005/06/23(木) 15:40:01
ふと思ったんだが、PoolSizeMax=0でこけるのは当たり前、1を指定すべきなんじゃないかと
949 :
デフォルトの名無しさん :2005/06/23(木) 15:43:18
宮沢りえみたいな髪型のひごタンに、 漏れも叱られてみてぇ〜 じゃ、ずばり言うわよ !!! (ドキドキドキドキ
>>949 その話題には全然参加してないけど、自分に言われてるみたいで反省_ノフ○
なんだか、改めてみるとkくんに該当するひとばっかりだな
盛り上がってまいりました!w
>>952 たしかに、_ノフ○ なんかいい感じだな。
俺は断然Kを推すぜ!
まだ複数コミッタ制にして日が浅いせいか、ひがタソの 影響力が強すぎる気がするな。
S2Axisあたりで、話題のk氏とエビちゃん大好きk氏の間で何かしっくり行ってない気はしてたんだよねぇ。 放っておけばおとなしくなると思ったのに、ひが氏出てきてかえってややこしくなったような。
人格攻撃だの価値観の押し付けだのはよくわかんないけど、 連続投稿って掲示板だけでなくML上でも結構うざいんだってことはよく分かった。 それよりも、k氏の親分とひがタンの関係がまずくなったりしないかな?と余計な心配をしてみる。
Kがいっぱいいるw (1)ただいまブレイク中のイチャモンK (2)モデル・アイドル大好きオタクK (3)理事か何かのとてもエライK で(2)が(1)や(3)と意見がぶつかり気味。 コミッタ複数いて表面的には民主主義的だけど、 実際にはひがタソとモデルおたくKの思想・哲学に かなり引っ張られている。もちろん彼らは優秀だと 思うけど。
(4)最近結婚したk (5)hibernateのk (6)mタソのk (7)読書会のk (8).NETのk (9)RMIのk だいたいHとKでまわってるな。
961 :
959 :2005/06/23(木) 21:33:30
そういえば俺もKだわ
うちは爺ちゃんがKだ
(10)phpのk (11)mavenのk (12)seasar wikiのk
>960 Kしかいないぞ
>>964 (1)中心人物のh
(2)アニオタh
(3)アニオタ部下h
(3)がわからん
て言うか、オタはこっそりやれw
Seasar法人の理事じゃないの?
>>966 元sourceforgeうp担当かな?
今は(2)の部下じゃなくなったはずだが…
理事ってKHHだろ
オタ理事Hいらね コード書かない奴はクソ
苗字の頭文字で統一シル!
ほんとに技術ネタの出ないスレだなw
>>974 kの(3)はすぐわかるからhの(3)の話じゃね?
>>971 ばかぃやるぉう!
HBたんは殺伐としがちなSeasarプロジェクトのの「和み」担当じゃないかッ!
殺伐(1) Seasar-user:1059〜 k(1)とk(2) 殺伐(2) Seasar-user:2050〜 k(2)とk(3) 殺伐(3) Seasar-user:2215〜 k(1)とk(2)とh(1) 全てk(2)絡みw
デブオタが出来るのは和みだけか(藁
今回の殺伐(3)を読み返すと、k(1)k(2)が技術的なやりとりをしててk(1)が名前の付け方にぽろっとちゃちゃいれたところを、h(1)が横槍いれて勝手に切れただけに見える。
>>978 豚の餌ほどの役にも立たないおまいより全然ましw
k(2)は、位置付けかんがえると(1)にしたほうがよかったのではなかろうか。 ってか、k(1)だと名前どおりになる。
じゃあぷちバトル発生順に 人物(1) モデル・アイドル大好きオタクK 人物(2) 代表取締役社長のとてもエライK 人物(3) ただいまブレイク中のイチャモンK 殺伐(1) Seasar-user:1059〜 k(1)とk(3) 殺伐(2) Seasar-user:2050〜 k(1)とk(2) 殺伐(3) Seasar-user:2215〜 k(1)とk(3)とh(1) 全てk(1)絡みw という感じ?
k(1)は、扱ってる範囲が広いのと、作ってるのがS2と何かをつなぐブローカーだからバトりやすいってのがあるんじゃないかな。
発生順ならk(2)とk(3)が逆、殺伐としたやりとりは他にもあったので追加するとこうなる k(1) モデル・アイドル大好きオタクK k(2) ただいまブレイク中のイチャモンK k(3) 代表取締役社長のとてもエライK h(1) 中心人物のh 殺伐(1) Seasar-user:1059〜 k(1)とk(2) 殺伐(2) Seasar-user:1792〜 k(1)とk(2) 殺伐(3) Seasar-user:2050〜 k(1)とk(3) 殺伐(4) Seasar-user:2215〜 k(1)とk(2)とh(1) 全てk(1)絡みw
ヲチスレ化してるな
漏れはk(1)のほうを応援する k(2)やk(3)は押し付けがましい
漏れはk(2)だな k(3)は社長だからたっぷり稼いでる k(1)もブランド漁るくらい稼いでる k(2)くらいしか応援できん
それではオレは、k(13)seasarに無関係なk を応援する
ではオレはk(14)seasarに恋してるk を応援する
そしてオレはk(15)seasarをシーソーだと思ってたk だ。
k(2)って毎回パターンが同じなんだよな。 「○○は俺の考えたようには(動かない、だから俺はこのようにソース変更して使っている」 その使い方に問題がある可能性は微塵も考えないんだろうか。