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

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

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

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

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

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

ひがやすをblog
http://d.hatena.ne.jp/higayasuo/

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

関連スレ(なのか?)

Java Spring Frameworkを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1077465099/

Dependncy Injectionを語るスレ
http://pc8.2ch.net/test/read.cgi/tech/1099827125/
0508デフォルトの名無しさん2005/09/22(木) 18:39:48
>507
言い出しっぺ乙
0509デフォルトの名無しさん2005/09/22(木) 19:50:47
>>506

そういう状況を改善するために4月か5月にドキュメントチームを立ち上げたんじゃなかったかな?
けっこう手を上げた人はいたと思っていたけど、予想通り、機能不全か
ついでにマーケティングチームもできたはずだが何か成果だした?
0510デフォルトの名無しさん2005/09/22(木) 20:08:53
つか、本書いてる間に気が変わって方針を変更するような、
提唱者すら実践不足な、脳内で美しいだけの方法論なんて論外。
0511デフォルトの名無しさん2005/09/22(木) 22:06:34
開発者が国内にいるからなのか、オフィシャルじゃない「勝手解説」も少ない。
0512デフォルトの名無しさん2005/09/22(木) 22:32:36
>>505
具体的に何が知りたいんだ?
0513デフォルトの名無しさん2005/09/22(木) 22:35:54
FAQがあるかどうか。
0514デフォルトの名無しさん2005/09/22(木) 22:50:30
なにやら急に哲学的になってまいりました
0515デフォルトの名無しさん2005/09/22(木) 23:05:47
512が魔法の呪文を唱えたからね。

>>512
具体的に何が知りたいんだ?
0516デフォルトの名無しさん2005/09/22(木) 23:11:24
>>515の知りたいものを知りたい
0517デフォルトの名無しさん2005/09/22(木) 23:34:04
なるほど・・・FAQメールの某所はここだったかw

しかし、某氏はFAQの意味を理解しているのか?
0518デフォルトの名無しさん2005/09/22(木) 23:35:37
Go Fuck Yourself!
の略だろ?
0519デフォルトの名無しさん2005/09/22(木) 23:45:52
FAQがあれば、より便利だった筈のことを探していけばいいんじゃない?
例えば、過去にメーリングリストのログ等を検索した調べ物の内容についてアンケートを取るとか
0520デフォルトの名無しさん2005/09/22(木) 23:48:15
この辺で作ろうとしてたみたいだね。
http://seasar.satin.jp/wiki/index.php?cmd=read&page=AnsweringYourQuestions
でも質問が繰り返されなかったようだw
0521デフォルトの名無しさん2005/09/22(木) 23:49:27
つまり、実際に使ってる人は少ない、と。
05225042005/09/23(金) 08:49:28
S2.NETのbeta9と最新のtar球で調べてみたけど、結局、列挙型サポートしていないしソース直さないとだめだった。
C#の列挙型(enum)ってコンストラクタの引数やプロパテイに結構使うと思うんだがな。
しっかし、SandBoxのロードマップって、どーなっているかよくわからん。

こんなソースで
public enum Digit{ZERO=0,TEN=10}
public class Sample {   
    private Digit digit;
    public Digit SampleDigit {
        get { return digit; }
        set { digit = value; }
    }
}

これがエラーになるんで
<property name="SampleDigit">"TEN"</property>
<property name="SampleDigit">10</property>

S2.NET.Framework.Container.Asembler.AbstractPropertyAssembler#SetValueに以下の行を追加して解決?っと。
if(propertyInfo.PropertyType.IsEnum)
{
    value = Enum.Parse(propertyInfo.PropertyType, value.ToString());
}
0523デフォルトの名無しさん2005/09/23(金) 11:35:43
FAQが作れないってのは、ドキュメントチームはいままで何してたのかって話だね。
「何を疑問にもつか?」っていう問いもなしにドキュメント作ろうとしてたんだろうか?
0524デフォルトの名無しさん2005/09/23(金) 12:44:17
?
思いこみで作ってもFAQにはならんのじゃない?
0525デフォルトの名無しさん2005/09/23(金) 12:53:35
わかる人は、わからない人が何がわからないかわからない

みたいな話はS2プロジェクトの某氏が某所で言ってた
だからドキュメントチームだと思ってたが
0526デフォルトの名無しさん2005/09/23(金) 13:21:44
つーか、user MLに流れた質問からとりあえず拾ったらいいんじゃないのか?
それとも投稿する人のレベルが高すぎてFAQになりそうなものがないのか?w
0527デフォルトの名無しさん2005/09/23(金) 13:38:00
単純に、既存のドキュメントをQ&A形式で新たに書き起こしてもいいかもしれない
S2Hibernateとかはドキュメント少なすぎだと思うし
0528デフォルトの名無しさん2005/09/23(金) 13:57:03
結論:
 色々判っているレベルの高い人が利用すると能率が上がるフレームワークであり、
 昨今幾ら雑誌等で煽られても凡人が手を出すべきでは無い。
0529デフォルトの名無しさん2005/09/23(金) 14:16:12
>>524
「想定」もできないから「思い込み」って表現になるんだよな。
0530デフォルトの名無しさん2005/09/23(金) 15:08:06
>>526
user MLから拾おうとしたらk(1)とk(2)の殺伐に流されたお。
0531デフォルトの名無しさん2005/09/23(金) 17:38:48
>>530

それじゃやる人もいないわな
0532デフォルトの名無しさん2005/09/23(金) 18:38:53
大将曰く
「理由は、MLで質問すればいいじゃん、って考えるからです。」

なるほろ。そのMLはFAQに対して
「過去ログに目を通しましたか?」
なんて切り返すことの無いやさしいとこなのですねw
0533デフォルトの名無しさん2005/09/23(金) 18:52:42
>>532
過去ログの量もないから切り返しもないだろw
0534デフォルトの名無しさん2005/09/23(金) 20:22:01
>>533

それをいっちゃだめだよw
0535デフォルトの名無しさん2005/09/23(金) 23:47:40
>>504

本当なら
><property?name="SampleDigit">"TEN"</property>
じゃなくて
><property?name="SampleDigit">名前空間.Digit.TEN</property>
が通るべきだと思うんだけど。

コンストラクタやメソッドにはJScriptの式がつかえるけどプロパティでは
つかえないっぽいね。JScriptの式が通るなら本当は「名前空間.Digit.TEN」
でOKなはずなんだけど。
05365042005/09/24(土) 00:15:21
>>535
いや、プロパティもJScript.NET式サポートしているみたい。ただ、マニュアルには
>new DateTime()のように標準ライブラリ(mscorlib.dll)のクラスや構造体のコンストラクタを呼び出すことができます。

とあるんで、System.TypeCode列挙型みたいに、mscorlib.dllアセンブリに属している列挙型なら、
<property name="SampleTypeCode">TypeCode.Int16</property>でうまくいった。

ただ、public enum Digit{ZERO=0,TEN=10}みたいに標準ライブラリ(mscorlib.dll)に属していない
ユーザ定義のものだとダメってこと。

あと、名前空間等付けてないのは、そういった型情報は冗長でプロパティ自体の型を検査すれば判定つくとの判断と、
Spring.NETと同一の書式にしたかっただけw
0537デフォルトの名無しさん2005/09/24(土) 17:30:51
Mayaのことはよく知らなかったんだけど、試しにサンプルをちょっと眺めてみた限りでは
idをキーとして、HTML部分だけが綺麗に分離されてるように見えるけど?
たしかに、S2JSFに関しては、結局JSFの知識が無いと辛そうな気がするけどね
05385372005/09/24(土) 17:31:32
すみません誤爆しましたorz
0539デフォルトの名無しさん2005/09/24(土) 20:30:34
>>538
どこで話題になってる?
0540デフォルトの名無しさん2005/09/24(土) 20:34:11
JSFスレだな。しっかし、火消し部隊必死だなwww
0541デフォルトの名無しさん2005/09/24(土) 20:41:56
S2JSFとMayaは完全に独立なのにね。
S2JSFはJSFのためのものだからJSFの知識は必要でしょ。

S2JSFやらS2StrutsやらMayaやら、結局JSFやStrutsやJSPの知識が結局必要になるから、壁が高いんだよね。
0542デフォルトの名無しさん2005/09/24(土) 21:47:36
Mayaは
m:inject="c:out"
とか書かせてる時点で終わってる

とかいうのはあんまりだ、強気の書き込みで
勘違いがあると恥ずかしいねぇ。
0543デフォルトの名無しさん2005/09/24(土) 21:57:11
あんなにS2JSFがイヤなら無視すればいいだろうにどうしても批判したいんだね。
自分の方がひがタソより上だって主張したいのかね?
だったら自慢の俺様フレームワークを晒してみろって。
と、ここにしか書けない気弱な俺w
0544デフォルトの名無しさん2005/09/24(土) 22:02:07
>>542
まるで某A氏の再来のようだw
k(1)さん、出番ですよ♪
0545デフォルトの名無しさん2005/09/24(土) 22:10:14
あれ、多分S2JSFしか見てないよな。
で、名前空間にmayaってあるから早合点か。
御愁傷様。

でもMayaをS2JSFに置き換えれば
まあ口汚くはあるが、わからないでもない意見。
0546デフォルトの名無しさん2005/09/24(土) 23:45:06
>>543
自分が理解できないものに出会った時、人には3種類の反応がある。

1.とにかく、それについて学ぼうとする<エンジニア向き
2.とりあえず、見なかった事にする<マネージャー向き
3.なんとか、存在を否定しようとする<首吊って死ぬべき
0547デフォルトの名無しさん2005/09/25(日) 00:21:22
>>546
他にも色々可能性はある訳だがな。

・本当は理解してるのに、遊んでいる<いわゆる釣り
・理解できていないが、単純に教えてというと返事が来ないと思い、
 暴言を吐く<2chの場合、効果ある場合が多い
0548デフォルトの名無しさん2005/09/25(日) 07:31:09
SeasarプロジェクトとしてMayaを標準にしていこうという動きはいいんだけど
実際の仕事では、画面作成はJSP+StrutsタグまたはJSFタグでという所が多いと思う
Strutsに関してはS2Struts使えばいいと思うけど、S2JSFはViewもS2JSF前提となってるのがどうも・・・
S2JSFをJSF実装非依存にして、View作成でJSP+JSFタグというノーマルな方法も標準で対応して欲しいのだが
0549デフォルトの名無しさん2005/09/25(日) 17:08:56
囲いこめなくなるじゃねーか。
0550デフォルトの名無しさん2005/09/25(日) 17:16:58
>>549
囲い込まれるなら、MSと変わらない訳で、それなら素直に.NET使うよ。
0551デフォルトの名無しさん2005/09/25(日) 17:50:50
囲い込んだだけでMSと変わらなくなるのか。
出世したな、Seasar2
0552デフォルトの名無しさん2005/09/25(日) 19:47:15
>>550
Seasar2に囲い込まれるだけで.NET使うくらいなら、もう.NETつかったほうがいいとおもうよ。
0553デフォルトの名無しさん2005/09/25(日) 22:41:09
Seaser2の場合は、すぐに非互換のSeaser3とか登場しそうで怖い。
0554デフォルトの名無しさん2005/09/25(日) 22:50:07
そ、そのリスクに関してはMSの方も同等かそれ以上なんじゃ…?
0555デフォルトの名無しさん2005/09/25(日) 23:00:50
seasar3、去年の11月には予告されてましたが。
0556デフォルトの名無しさん2005/09/25(日) 23:05:23
>>554
いや、MSは結構あれで互換性には気を使ってる。
基本的に
過去の自社製品との互換性(バグ含んで)>>>>新たに決まったW3C規格
って方針だからWEB界隈では今ひとつ評判が悪い位で。
0557デフォルトの名無しさん2005/09/26(月) 02:26:57
囲い込むとか考える前に今はユーザーを一人でも増やすべきだと思うのだがw
0558デフォルトの名無しさん2005/09/26(月) 23:06:32
>>556
ごめん、過去のこと良くわかんないんだけど、
VB6とかActiveXとか無印ASPとかで覚えた技術って今でも使えるの?
0559デフォルトの名無しさん2005/09/27(火) 23:12:27
そりゃ使えるだろう。
VB6で作成したソフトはWindowsXPでも動作するし、ActiveXもASPも同じく。
0560デフォルトの名無しさん2005/09/27(火) 23:54:31
>>559
それはなんか違わね?
0561デフォルトの名無しさん2005/09/28(水) 12:08:37
>>559
あ、ごめんなさい。ユーザの立場じゃなくてプログラマの立場として、です。
ActiveXについて一所懸命勉強した知識を、.NETでもいかんなく発揮出来るんですかね?ってことです。
0562デフォルトの名無しさん2005/09/28(水) 23:23:33
>>558
とりあえず最新の開発環境にてActiveXの作成/利用はサポートされている。
名前は2005だけど、出るのは何となく2006になりそうな次のバージョンでも
サポートされている模様。おそらく次の次のそのまた次でもサポートされ続けるかと。
つまり、今でも使える。

利用価値はあるか、と言えば、勿論ある。今のWindowsってActiveXの塊だから、
多分まだ.NETよりある筈。
改名前のOLE2から数えると随分息が長い技術だな…と今思った。

ActiveXのTIPSみたいな固有の知識が.NETにそのまま利用できるか?
…別モノなのだから利用できるワケないじゃん。アフォですか。
0563デフォルトの名無しさん2005/09/28(水) 23:53:25
>>…別モノなのだから利用できるワケないじゃん。アフォですか。
だからそこが問題なんだって遠まわしに言ってるんですが。脳の不自由な人ですか?
0564デフォルトの名無しさん2005/09/29(木) 00:04:56
そろそろスレ違い
0565デフォルトの名無しさん2005/09/29(木) 02:16:02
少なくとも>>562はアフォだ。
0566デフォルトの名無しさん2005/09/29(木) 12:20:35
アフォですね
0567デフォルトの名無しさん2005/09/29(木) 13:11:00
10年ほども使われてきた技術がレガシー化されるタイミングを見計らって、
「ActiveX (COM) とかの技術って.NETでも使えるの?」と聞くのは公平では
ないような気が・・・

seasarは今後の発展系や派生を含めても10年も持たないだろうし。
0568デフォルトの名無しさん2005/09/29(木) 18:03:52
>>567
VBXなんかは5年も持たなかっただろ?
多くのベンダがコンポーネントを提供して利用者も結構多かったはずだが
あっさりと互換性のない技術(OCX)に移行。

>>556
> 過去の自社製品との互換性(バグ含んで)>>>>新たに決まったW3C規格

これは互換性に配慮してるんじゃなくて単なる囲い込み戦略だろ。
0569デフォルトの名無しさん2005/09/29(木) 19:06:18
>>568
だったら互換性に関する批判では最初からVBXを例に出すべきだろ?
COM -> .NET の例は公平じゃないんじゃないか、というのが>>567の
主眼だから。
0570デフォルトの名無しさん2005/09/29(木) 19:29:01
俺は>568だが>558ではない。
>558はたまたまVB6あたりからさわり始めたから例に出しただけだろう。
俺はたまたまVB2からさわり始めたからVBXを例に出した。
結局どこから始めても「MSは互換性のリスクが低い」とは判断しにくいと思うが。
つまり>554の指摘は妥当。
0571デフォルトの名無しさん2005/09/29(木) 19:54:02
>>570
COM は 10年持ったわけだから、むしろ互換性が維持されてきたという
側の例のような気がするが。互換性は永久に維持されなくてはならない、
という立場もあるとは思うけど、非現実的だし。
0572デフォルトの名無しさん2005/10/01(土) 20:27:10
シーザー!!
0573デフォルトの名無しさん2005/10/01(土) 20:51:42
オマイもか!!
0574デフォルトの名無しさん2005/10/01(土) 21:00:48
シーズー!!
0575デフォルトの名無しさん2005/10/01(土) 23:41:34
COMは10年、Seasarは…?
0576デフォルトの名無しさん2005/10/01(土) 23:53:13
COMは千年、Javaは万年
0577デフォルトの名無しさん2005/10/11(火) 03:26:35
MLでもスルーされてるけど、S2JSFでセッションが切れたとき
画面遷移にワンクッション入っちゃうのは仕様なの?
クリックし直せばいいんだけど、利用者から見たら気持ち悪い
挙動だと思う。何とかならないかな。
0578デフォルトの名無しさん2005/10/11(火) 10:48:02
>>577
MyFacesがそうなっているんじゃないの?
0579デフォルトの名無しさん2005/10/11(火) 18:53:17
>>577
JSF1.1の仕様として、

 ・特定画面で発生するアクションはその画面に対する
  リクエストとして処理される。

 ・特定画面に対するリクエストを実行する際にその画
  面のコンポーネントツリーが存在しない場合、「初め
  てその画面を表示しようとした」とみなされ、Resotre
  Viewフェーズの後ですぐにRenderResponseフェー
  ズが実行される。
  このとき、コンポーネントツリーの生成と当該画面の
  描画が行なわれる。

ってな感じになるっぽいので、セッションが切れたあと
の初回アクションでは「ログイン画面を初めて表示しよ
うとした」とみなされて変な挙動に見えるのではないか
と。
ブラウザの戻りボタンや別ウィンドウ表示の際もこの仕
組みが悪さをするっぽい。
0580デフォルトの名無しさん2005/10/11(火) 19:20:06
へえ、JSFの仕様なんだ。情報ありがとう。
ログインが前提で短い時間内に全操作が完了するようなケースだったら
それでもいいんだろうけど、どうも違和感が残るなあ。
今、S2JSFで検索系のWebアプリを作ってるんだけど、

検索
↓
画面を放ったらかしにしてしばらく別の作業
↓
再度検索

なんてことが良くある。その度に検索ボタンを2度押す羽目になるんだよなあ。
もう割り切って諦めるしかないのかな。
05815792005/10/12(水) 00:16:39
>>580
Seasar2というよりJSFの話になっちゃいますが、
"STATE_SAVING_METHOD"を"client"にする
ことでどうにかなりませんか。
0582デフォルトの名無しさん2005/10/12(水) 08:33:31
>>581
ありがとう、試してみるよ。
0583デフォルトの名無しさん2005/10/12(水) 22:52:40
WebLogicでもSpringサポート始めたし、今更Seaser2使う理由は無いだろう。
05845002005/10/12(水) 23:20:03
WebLogicだって( ´,_ゝ`) プッ
0585デフォルトの名無しさん2005/10/13(木) 10:32:24
現在Goyaに従ってロジックを設計・実装していますが、疑問が出てきました。
プレゼンテーション層で行なうバリデーションを、ロジックでも二重に
行なうべきなんでしょうか?
バリデーションをロジックに含めないと、ロジックの単体テストが
やりにくいです。でも、チェックが冗長になってしまうのでスマートじゃ
ない気がします。誰か正しい方針を教えてください。
0586デフォルトの名無しさん2005/10/13(木) 21:31:06
>>585
blogのコメントに書き込んで聞いてみる。
それが、正しい方針。
05875852005/10/13(木) 21:59:20
そんな勇気があったら2chには来ません(笑)。
0588デフォルトの名無しさん2005/10/13(木) 23:56:21
ピンポンダッシュ
0589デフォルトの名無しさん2005/10/13(木) 23:59:37
>>588
獄長に首根っこ掴まれて即死w
0590デフォルトの名無しさん2005/10/14(金) 12:25:38
>>587
獄長が怖いのか、ならしかたがないw

一般的な話として、
プレゼンテーション層で行うバリデーションは、
ロジックで行う必要は無いと思うよ。

DRY。

ロジックでの単体テストは正しい値が渡ってくる前提で
書けばいいんじゃないの。
0591デフォルトの名無しさん2005/10/14(金) 23:05:28
>>584=500
0592デフォルトの名無しさん2005/10/17(月) 19:59:56
>>585
バリデート用のクラスを作って、それをプレゼンとロジックの両方で使えばいいんじゃないの?
0593デフォルトの名無しさん2005/10/19(水) 23:39:19
>>590
それをDRYとは言わない。
0594デフォルトの名無しさん2005/10/19(水) 23:43:02
http://d.hatena.ne.jp/higayasuo/20051019#1129707421

Rails で沸いてるところに Rails ほど徹底してないもの持ち込んで受けるかな?
0595デフォルトの名無しさん2005/10/20(木) 00:23:20
Java界隈には受けるだろ。
Ruby&Railsが本流になるにはまだ時間があるだろうし、露払いには十分じゃね?
0596デフォルトの名無しさん2005/10/20(木) 00:58:50
>>595
うまいこと宣伝すれば「Java から移行しなくてもいいんだ!」って持ってけるな。
0597デフォルトの名無しさん2005/10/20(木) 01:00:01
>Ruby&Railsが本流になるにはまだ時間があるだろうし

ノイマン型コンピュータが幅を利かせてる間は、無理だろうな。
0598デフォルトの名無しさん2005/10/20(木) 01:18:52
>>597
くわしく
0599デフォルトの名無しさん2005/10/20(木) 01:22:23
>>594
それと比較するならMayaとかS2JSFとかじゃないの?
0600デフォルトの名無しさん2005/10/20(木) 01:25:51
600
0601デフォルトの名無しさん2005/10/22(土) 15:50:31
今、Seasar2を勉強しているのですが(DIも初めて)、
DIで使うクラスは、インターフェースを使わないと駄目なのでしょうか。
デフォルトの親クラスとその子クラスという形でプログラミングすることが
多いのですが、その上にインターフェースを設けないと、DIは使えない
のでしょうか。

またコンポーネントの取得の際に、クラスを直接指定するのが推奨とあるの
ですが、もし複数の実装クラスがあってその実装クラスを直接していすると
なると、newでインスタンスを取得するのとさほど変わらないと思うのですが。
0602デフォルトの名無しさん2005/10/22(土) 16:13:28
>>601
インターフェイスを使わなくても利用できる。
インターフェイスを使っていると、そのインターフェイスを利用している別のコンポーネントに対して
バインディングが自動的に行われるようになるから、より便利にはなる。が必須ではない

> またコンポーネントの取得の際に、クラスを直接指定するのが推奨とあるの
> ですが、もし複数の実装クラスがあってその実装クラスを直接していすると
> なると、newでインスタンスを取得するのとさほど変わらないと思うのですが。

その通り。だからクラスで指定するときには普通インターフェイスを指定する。
0603デフォルトの名無しさん2005/10/22(土) 16:26:34
インタフェイスを使わないような設計・規模のアプリならムリしてDIコンテナ使う必要はナイキガス
0604デフォルトの名無しさん2005/10/22(土) 21:07:07
でも不思議なのは、インターフェイスを使うと言っていながら、
実装クラスは一つじゃないとオートバインディングできないわけでしょ。
コンポーネント取得の際にも、実装クラスが一つじゃないとインターフェイス
を指定しても駄目なわけでしょ。そもそもインターフェイスを使うのは、
実装クラスが複数あるからだと思うんだけど。
0605デフォルトの名無しさん2005/10/22(土) 22:15:15
何時の日か、実装をごっそり置き換えたくなった時の備えなんだってさ。
そんな日が来るのかどうかは神のみぞ知るけどな。
0606デフォルトの名無しさん2005/10/22(土) 22:30:19
ある一部分の置き換えが目的じゃなくて、全体的にクラス単位で部品化し
基本的にクラスの組み換えや入れ替えで、修正や機能変更に対応していくのが目的だと思う
0607デフォルトの名無しさん2005/10/22(土) 22:42:16
YAGNIの逆だな。
0608デフォルトの名無しさん2005/10/22(土) 23:50:11
インタフェースを使うとモックを使ったテストが楽になる。
テストしやすいクラスはDIにも向いている。
つべこべ言ってるヤツはテストしてんのか?
■ このスレッドは過去ログ倉庫に格納されています