国産DIコンテナSeasar その15at TECH
国産DIコンテナSeasar その15 - 暇つぶし2ch127:デフォルトの名無しさん
09/05/23 18:26:29
>>126
>人に素人っていう奴が実は一番何もわかってたりするわな

人に素人っていう奴が実は一番何もわかってなかったりするわな

だろw


128:デフォルトの名無しさん
09/05/23 18:29:37
>>127
突っ込み速っ!!!

129:デフォルトの名無しさん
09/05/23 19:31:55
>>127
実は褒めているんだよw

130:デフォルトの名無しさん
09/05/23 20:16:10
(1)公式見る
(2)MLを見る
(3)コミッタのblogなどを見る
(4)MLやblogで質問する
ってのが普通なのであって
匿名掲示板で一方的に不満たらたらくだ巻いてるのはだいたい情弱なんだよ

131:デフォルトの名無しさん
09/05/23 20:32:31
あとあれだな
個人的な中傷だったり、詳しい人に反論されてフルボッコになるのが嫌で
公に意見できなかったりする感じのがここに集まってるな

132:デフォルトの名無しさん
09/05/23 20:51:52
あとあれだな
個人的な中傷だったり、詳しい人に反論されてフルボッコにされた誰かを
ヲチして楽しんでる感じのがマ板に集まってるな

133:デフォルトの名無しさん
09/05/23 20:55:01
時間があったのでSAStrutsをさ、とりあえずサンプルを動かして見ている段階なんだけど、
雛型の作成であれば、Doltengによって雛型を作成できることから、それほどクラス設計は悩まなくてもいい事が解った。
S2JDBCとS2Daoについては、S2JDBCはどうやらDaoを必要としないケースでのデータベースアクセスに使用するものだね。
僕は、Daoをさ、画面単位に持ちたいから、どちらかといえばS2Daoを使用したいね。O/Rマッピングツールと同様に、
DaoやDTOを自動生成できるツールもあるみたいで、なかなか便利だなって思っていました。
Daoの仕様について、僕はprepareStatementを使用したものが主流だと思っているんだけど、prepareStatementでも、
SQL文をプロパティファイルに記述し外出しすることにより、依存性の注入は可能だよね?
S2Daoの使用も見てみましたが、こちらはSQLファイル単位で外出し、引数に関してはARGSアノテーションを使用する。
S2Daoにおいて依存性の注入の方式が、クラス名+メソッド名と同じファイルのSQLが呼び出される?で実現するようで、
正直に言って、ちょっとびっくりしました。dao.diconにはDaoクラス名は設定するけど、
メソッドとSQLファイルに関連する定義されていない。これがAOPと呼ばれる処理に該当するんだろうね。
AOPに関してはもう少し検証しなければ、正確には把握できない。また、DTOに関しては、
テーブル定義そのままをDTOに保持する事になることから、処理速度が心配になりつつも、
いずれにしても、わりとコアな内容の仕様なんで、僕なんかこういうの見てぞくぞくするので、好きだけどね。


134:デフォルトの名無しさん
09/05/23 23:27:09
ひがやすを blogみたが
社会やら個人に対する否定&文句ばっかじゃんw


135:デフォルトの名無しさん
09/05/24 01:40:34
>>133
△クラス名+メソッド名と同じファイルのSQLが呼び出される?で実現するようで、
○Daoメソッド実行時に、クラス名+メソッド名と同じ名称を持つSQLファイルが呼び出される。

136:デフォルトの名無しさん
09/05/24 03:51:57
現状に満足してる奴は新しい物を生み出せないからな
不満があるから自分で何か違う物を作ろうとする

137:デフォルトの名無しさん
09/05/24 04:26:38
キリッ

138:デフォルトの名無しさん
09/05/24 07:06:40
だっておwwwっw


139:デフォルトの名無しさん
09/05/24 07:14:36
クスクス

140:デフォルトの名無しさん
09/05/24 08:15:40
で、結局、slim3の通常のrdbms操作は何使えばいいのさ

141:デフォルトの名無しさん
09/05/24 14:49:15
>>134
>>136

どうなんだろうね。JavaEEに関して悲観的になっているのが、少し気になるね。
GAEに意識が集中しているようで、もちろん僕よりも業界や幅広い技術的な情報を収集している人だろうけど、
完全にさ、Struts系のフレームワークを捨てるとなるとさ、僕なんか少しがっかりしちゃうよね。
新しい事に挑戦するとこは悪いことではないので否定はしないけど、Struts系のフレームワークを
完全に捨てる方針は、もう少し慎重に判断してもらいたいと思いますね。


142:デフォルトの名無しさん
09/05/24 16:13:39
>>140
GAE/JでRDBは使えないから心配するな

>>141
GAE/J専用フレームワークSlim3でStrutsを捨てただけ
SAStrutsが捨てられたわけじゃない

143:デフォルトの名無しさん
09/05/24 16:25:51
日本語読解力が弱い人が多いと思う
だからMLで聞けないで掲示板で一方的に懸念を表明する

144:デフォルトの名無しさん
09/05/24 17:03:33
>>142
そうですか。GAEに関しては調べましたが、僕の視点からはPHPと同レベルに見え、
スクリプトレベルの開発環境と判断。したがって、僕の視点からはGAEは軽視しますね。
僕としては企業用のコアなJavaEEの方が、好きだけどね。
仮にSeasarがGoogleとの互換性を重視するあまりに、軽量なJavaを選択するのであれば、
僕としてはSpringに移行する事も想定に入れなければならない。


145:デフォルトの名無しさん
09/05/24 17:04:49
スリムサンがテストで対応してる環境に対して
それは方向性が違う俺たちは捨てられたとか騒ぐなよ
アホかお前ら

146:デフォルトの名無しさん
09/05/24 17:06:36
>>144
僕はバカ まで読んだ

147:デフォルトの名無しさん
09/05/24 17:10:39
好きなら文句言わずにJavaEE使ってればいいと思うんだけど

148:デフォルトの名無しさん
09/05/24 17:16:28
GAEがPHPと同レベルって笑うところ?笑えないけど

149:デフォルトの名無しさん
09/05/24 17:21:39
slim3はseasarじゃないって知らない人がいるね

150:デフォルトの名無しさん
09/05/24 17:23:35
アホだから直接スリムサンのblogで質問したりMLに投げたりできないんだろ
違いますよ何言ってるんですかって1秒で言われて終わりになるのが
自分でも解ってるから

151:デフォルトの名無しさん
09/05/24 17:25:28
>>147
ひがやすを氏が、SeasarとSlim3のプロジェクトを兼務しているので、論理が倒錯する局面が発生するので、
ユーザーとしては、そういう時に若干戸惑うかもしれないね。

152:デフォルトの名無しさん
09/05/24 17:31:28
>>144
Seasar2もSpringもJ2EEに対するアンチテーゼとして生まれ、
当時は軽量コンテナと呼ばれていた
これ豆知識な

153:デフォルトの名無しさん
09/05/24 18:12:07
どなたかSeaser.NETをお使いの方いらっしゃいませんか?
利用実績がある程度あればプロジェクト採用になるのですが・・・

154:デフォルトの名無しさん
09/05/24 20:47:40
>>153

どうなんだろうね。僕はJavaしかやったことがないで、解らないけど誰か.NET詳しい人います?
.netでもさ、S2Daoと同じ仕様なんで、例えばデータベースアクセスの際にVersionNoやTimestampによる
排他制御が実装されている。僕は.netでもSeasarを使う利便性は高いと思うけどね。

155:デフォルトの名無しさん
09/05/24 20:55:05
.NETならS2よりEnterprise Libraryのほうが提案しやすいけどな

156:デフォルトの名無しさん
09/05/24 20:55:34
>>153

うちではQuillつかってるよ。

DotNetって標準のWindowsFormsじゃあちょいとばかり非力だし
生のAdo.Netは使いにくいし、LinQforAdo.Netはカオスだし
S2Dao+Quillコンテナは、なんだかんだで便利。

まあ個人的にはDBアクセスはIBatis.Netのほうがいいじゃんって気もするけど。


157:デフォルトの名無しさん
09/05/24 21:13:19
>>141
嫌いなら別に使わなくていいと思う。
Servlet/JSPやJTAもJavaEEだから使うのやめればいいのに。
1からサーブレットAPIもどきから作るといいと思う。

158:デフォルトの名無しさん
09/05/24 21:15:03
みんなでGAE/Jすりゃ怖くないってか

159:デフォルトの名無しさん
09/05/24 21:36:24
GAE はまだまだ趣味レベルとしか見られないな

160:デフォルトの名無しさん
09/05/24 21:54:04
GAEのJava自体がまだテスト段階なんだから当たり前だと思うが

161:デフォルトの名無しさん
09/05/24 22:19:12
>>154 155 156
サンクス、助かります(;´Д`)
Enterprise Libraryはあまり馴染みがないのですが、
MS謹製ならちょっと考えようと思います

162:デフォルトの名無しさん
09/05/24 22:47:19
>>153
そういやSpringにも.NET版があるけど、どれ位使われているのかな?

163:デフォルトの名無しさん
09/05/24 23:56:22
>>162
それは、spring板の人に聞いてよ。でもさ、僕の視点では国産DIを利用した方がいいよ。付随するSAStrutsも高機能だからね。
前々、から言おうと思っていたけどさ、DAOクラスでさ、排他制御も書けない人がspringなんて使っても意味ないよ。


164:デフォルトの名無しさん
09/05/25 00:08:23
.NET版にもSAStrutsがあるのか。初耳だ。

165:デフォルトの名無しさん
09/05/25 01:06:10
ないよ
ってか事例だったらMLで聞いたら嫌でも殺到するのになんでまたこんな所で

166:デフォルトの名無しさん
09/05/25 01:08:33
PHP版はMapleとかあるけど、.NET版はかなり放置プレーだな

167:デフォルトの名無しさん
09/05/25 01:11:26
僕はJavaそしてSeasarを推薦するよ。S2Daoについて、僕が解りやすく説明するよ?
VersionNoでの排他制御に関しては、PrimaryKeyに属する行の内容を更新する際に、
VersionNoが自分の取得したVersionNoと異なるケースでは、他のユーザーが同じ行を先に更新している事になるので、正確な排他ができる。
Timestampでの排他制御に関しては、PrimaryKeyに属する行の内容を更新する際に、
Timestampが自分の取得したTimestampと異なるケースでは、他のユーザーが同じ行を先に更新している事になるので、正確な排他ができる。

Webシステムにおいては、多数の人が同時に同じDBにアクセスする事になるので、排他制御が抜けているシステムは致命的になる。


168:デフォルトの名無しさん
09/05/25 02:20:42
しかしながら、S2Daoの排他制御は不完全である。
理想としては、画面表示のselect時にVersionNoとTimestampを取得する仕様が好ましい。
今のS2Dao仕様では、Daoレベルでのデータベース更新の瞬間的な排他制御はできる。
そうではなくて、画面表示のselect時にVersionNoとTimestampを取得し、
「画面単位」で排他制御を行うのが正しい。S2Daoの排他制御もまた素人臭い。


169:デフォルトの名無しさん
09/05/25 02:36:38
カンファレンスにキシダタンでないかなぁ

170:デフォルトの名無しさん
09/05/25 02:40:23
>>168の訂正

失礼、ActionクラスからselectしDTOからActionFormに詰め替え際に、VersionNoあるいはTimestampもActionFormにsetする。
データベース更新時は、ActionFormからDTOに詰め替えする際に、select時に取得したVersionNoあるいはTimestampを
DTOに設定する事で、画面単位での排他制御が実現できる。

171:デフォルトの名無しさん
09/05/25 03:07:04
これができていないWebシステムはゴミだ。

172:デフォルトの名無しさん
09/05/25 03:29:32
若干混乱したので要約すると、

>>167○この概念はSeasarの公式にも書かれているので正しい
僕はJavaそしてSeasarを推薦するよ。S2Daoについて、僕が解りやすく説明するよ?
VersionNoでの排他制御に関しては、PrimaryKeyに属する行の内容を更新する際に、
VersionNoが自分の取得したVersionNoと異なるケースでは、他のユーザーが同じ行を先に更新している事になるので、正確な排他ができる。
Timestampでの排他制御に関しては、PrimaryKeyに属する行の内容を更新する際に、
Timestampが自分の取得したTimestampと異なるケースでは、他のユーザーが同じ行を先に更新している事になるので、正確な排他ができる。
Webシステムにおいては、多数の人が同時に同じDBにアクセスする事になるので、排他制御が抜けているシステムは致命的になる。

>>168×これは僕の認識の誤りである可能性が高い
しかしながら、S2Daoの排他制御は不完全である。
理想としては、画面表示のselect時にVersionNoとTimestampを取得する仕様が好ましい。
今のS2Dao仕様では、Daoレベルでのデータベース更新の瞬間的な排他制御はできる。
そうではなくて、画面表示のselect時にVersionNoとTimestampを取得し、
「画面単位」で排他制御を行うのが正しい。S2Daoの排他制御もまた素人臭い。

>>170○S2Daoの振る舞いが以下の使用に適合していれば、理想的な排他制御になる。検証してみなければ解らないが、暫定でできると仮定。
失礼、ActionクラスからselectしDTOからActionFormに詰め替え際に、VersionNoあるいはTimestampもActionFormにsetする。
データベース更新時は、ActionFormからDTOに詰め替えする際に、select時に取得したVersionNoあるいはTimestampを
DTOに設定する事で、画面単位での排他制御が実現できる。

>>171○ゴミです
これができていないWebシステムはゴミだ。


173:デフォルトの名無しさん
09/05/25 11:43:47
あ、いっぱい進んでる。

Rails使ったことないんだけど、
Railsはどのあたりが本質的で面白いか聞きたいのだけど、、、。


174:デフォルトの名無しさん
09/05/25 19:12:26
やべえ…
排他バカにみんな呆れて、過疎ってきた

175:デフォルトの名無しさん
09/05/26 00:31:44
>>168は楽観的ロック知らないのかなと思った
あと更新に失敗したら再度トランザクションやりなおしさせる処理が抜けてるシステムも多い

楽観的ロックは開発者に負担を強いるからね

176:デフォルトの名無しさん
09/05/26 00:41:32
>>168の言ってるのが楽観的ロックに見えるけど?

177:デフォルトの名無しさん
09/05/26 01:26:32
通常の楽観的ロックはトランザクション開始前に取得したものを使う

178:デフォルトの名無しさん
09/05/26 03:25:49
>>175
更新用データ取得時にバージョンカラムの値も取得しておいて
画面上ではhidden値にでも入れておいて
更新するときのBeanにその値を詰めておくだけだろ
アップデート文はFWが自動発行してくれるんだし
この程度を負担とか言っていたら、何も任せられないよ

179:デフォルトの名無しさん
09/05/26 08:16:32
>>178
負担ってのはどう考えても更新失敗時の例外処理の面倒さだろ。

180:デフォルトの名無しさん
09/05/26 13:34:25
節子、それ楽観ロックやない、悲観ロックや

181:デフォルトの名無しさん
09/05/26 13:54:48
>>178 が言っていることも楽観的ロックだと思うけど?

悲観的ロックというのは、その画面を誰かが開いている間、
ロックテーブルとかにレコードを入れて、他のユーザは強制的に入れないようにするような手法だと思っています。

182:デフォルトの名無しさん
09/05/26 18:26:02
そうだね。S2Daoによる楽観的ロックを行い、
後はさ、ユーザーに最終更新日によって確認してもらうのがいいよね。
楽観的ロックでもさ、多数のユーザーが同時に同じ操作を行った際には、
エラーメッセージによって、PrimaryKeyや名称を表示して、
「他のユーザーが同じ操作を行っています。
しばらく待つかまたはシステム管理者にお問い合わせください。」等の
メッセージとしてユーザーに対するお知らせが可能になるよね。
但し、この排他制御はユーザーが同時に同じ操作を行ったケースなんで、
5分前や1時間前に更新されたケースに関しては、
最終更新日の表示によってユーザーに気をつけてもらうしかなかなか方法がないよね。
もちろん、間に承認システムやバッチ処理があれば、
承認者が重複等の異常に気づくことも可能ではあるし、
そういった方式を取ることもあると思いますが、
後はさ、お金が絡む対象も存在するのでログテーブルも必要でしょう。

こういう事も考えていくとさ、僕なんかはやっぱりJavaEEを採用する方がいいと思うけどね。
単純でリスクの少ないWebアプリであれば、何を使用してもいいと思うけど、
実際に企業用のWebシステムとなると、こういう事もきちんと実装しないと正常稼働しないからね。
もちろん、僕はさ、ほらIT志望の大学生なんで、まだ皆さんよりは詳しくはないんですが、
話がSEよりになってしまっているので、プログラミング技術よりの話を展開していくのがいいと思いますし、
実際に、Webシステム作って排他制御とAOPを検証してみるよ。


183:デフォルトの名無しさん
09/05/26 19:12:59
5分前だろうが1時間前だろうが、更新用に取得したデータを
他に誰も更新していない状態で自分が更新したときにだけ成功するのだから関係ない

あと、JavaEEで楽観的排他をサポートしているのはJPAだが、
基本的にやってることは同じだから特に違いはない

184:デフォルトの名無しさん
09/05/26 21:22:47
>>178がいってるのはアプリケーションコントロールのロックな
更新時には悲観的ロックかもしれない

185:デフォルトの名無しさん
09/05/26 21:25:23
>>181
おいおい
このスレでわかりやすい嘘つくんじゃない

186:デフォルトの名無しさん
09/05/26 21:49:34
>>183

そうだね。DBの仕様が通信販売や予約システム等の早い者勝ちの仕様であれば、
あるいは銀行等の常に上書きされべき対象であれば、楽観的ロックだけで済む問題だけど、
民間企業用のさ、顧客に対する情報の更新等は、複数の担当者が重複して入力する可能性もあるので、
それは楽観的ロックだけでは、回避できないって話だよ。


187:デフォルトの名無しさん
09/05/26 21:52:55
>>183の追記

失礼、銀行のDBであれば参照用からマスターへの更新の際には、整合性チェックも含め
間に、承認やバッチ処理が必要だけどね。わかりやすく表現しただけなんで、そこの差異は理解して貰えると思います。


188:デフォルトの名無しさん
09/05/26 21:55:50
ジミ・ヘンドリックス
グリーン・デイ
ニルヴァーナ
チャック・ベリー
エルヴィス・プレスリー
ローリング・ストーンズ


189:デフォルトの名無しさん
09/05/26 22:02:18
ロックしないのに楽観的ロックって言葉が変だよね
ビールじゃないのに第三のビールみたいでさ

190:デフォルトの名無しさん
09/05/26 22:04:42
>>186

こういったケースでは、楽観的ロックだけでは回避できないので、画面に表示されている最終更新日によって、
ユーザーに変更していいのかを判断してもらいたい。また、間に承認システムやバッチ処理があれば、
重複した際に、承認者によって、どちらが正なのかを判断してらわなければならないということですよ。
その問題は、同時にシステム管理者への問い合わせとして、誰がいつどのDBを変更したかを把握しなければならないので、
ログテーブルも必要でしょう。と、僕がおっしゃってるわけですよ。


191:デフォルトの名無しさん
09/05/26 22:15:52
>>188そっちのロックじゃねぇ

192:181
09/05/26 22:19:35
>>185
え、ちがうの??

○楽観的ロック:

・画面表示(HTML 表示時)に、そのレコードの version_id なり最終更新日時を hidden で持たしておく
・HTML にデータを入力して submit 後、サーバサイドに渡ってきた version_id や 最終更新日時 を where 句にして

 select * from HOGE where 受注番号 = **** and versin_id = {画面から渡ってきたもの} for update

 して、レコードが取得できればそのまま update 文で更新
 レコードが取得できなければ、version_id がインクリメントされていることが考えられるので、
 画面に「他のユーザがすでに更新しました。データを再検索してください」

 こんな感じ

○悲観的ロック:

 ある画面を開いた時点で、その画面に排他制御をかけ、誰も入れなくする
 (業務仕様上、その画面が編集するテーブルは、その画面でしか更新できないことが条件)

だとおもっていたよ。

誰か添削してくれ

193:デフォルトの名無しさん
09/05/26 22:34:31
>>192
いちいちせぇctしないでうpだてすりゃいいだろjk

194:デフォルトの名無しさん
09/05/26 22:41:29
>>190の追記

楽観的ロックでも悲観的ロックでも、同じ振る舞いになる。

195:デフォルトの名無しさん
09/05/26 23:02:58
>>192
悲観的ロックがすごいな
俺ならそんなシステム使いたいと思わない

>>194
俺も回避できないからどうリカバリーするかを考える方が好きだ

196:デフォルトの名無しさん
09/05/26 23:04:30
>>192
それはアプリケーション制御の話。つまりただの仕様であり運用方法。

通常楽観的ロックや悲観的ロックというのはDBアクセスで読み込み中心ならば
ロックをかけないようにしよう、後から来たほうはトランザクションをリトライさせればいいんじゃね?
というお話だからミリ秒単位のお話。

だからリトライ制御等がはいってないのは楽観的ロックですらなく、書き込みもそれなりにあるのならば
普通に悲観的ロックをかけたほうが良い。

よくあるATMでの振込みと引落の同時アクセスを考えてみると良い。

ただ、読み込みでロックかけるようなDBなら楽観的ロックのほうが有利にはなりやすい可能性あり。

楽観的ロックというのはデータベースのロックを積極的に利用しようという話ではないので
開発者側に負担を強いる方法。楽観的であれ短い時間だろうが更新時にはどうせロックかけるので
実はアクセス順序を意識しないとデッドロックの可能性が普段から意識する悲観的ロックより
大幅に増える。IF文等によりアクセスするテーブルや行が変わる可能性があるからね。

197:181
09/05/26 23:05:15
>>195
おっしゃるとおりなので、悲観的ロックをかける場所は、
たとえば「年次締めバッチ起動画面」など、重要で、誰か一人しか使えなくすべき画面にのみに適用し、
普通のところは、 >>192 の楽観的ロックを使う、と思っているのですが。

198:デフォルトの名無しさん
09/05/26 23:12:33
I do not recommend that you use Teeda if you could not read the document.
(´;ω;) カワイソス

199:デフォルトの名無しさん
09/05/26 23:13:01
なんで今更こんな話題で盛り上がってる?
POEAA読めば終わりだろ?読んでないの?素人?

200:デフォルトの名無しさん
09/05/26 23:36:49
>>199
たまには動物園に行きたくなるだろ?

201:デフォルトの名無しさん
09/05/26 23:42:34
>>193
俺もupdateのwhere句に条件加えればいいじゃんと思うんだが

202:デフォルトの名無しさん
09/05/26 23:57:59
>>199
まあそういうな
s2コミッタ=素人
s2ユーザ=ど素人
なんだからさw

203:181
09/05/26 23:58:45
>>193 >>201
select .... for update してレコードが取得できたかどうかをせずに、
いきなり update 文を実行した場合、
update 文の結果(PreapredStetement#exeucte())で、0 が返って来た場合、
version_id がずれて更新できなかったのか、
そもそも、当該受注番号のレコードが、一瞬先に別ユーザによって消されたのかわからない。

select .... for update してレコードが取得できたかチェックしておいて、レコードが得られなかったら、
「他のユーザがすでに更新しました or 他のユーザがそのデータを消しました」
とエラーメッセージを出すことが出来る。

とここまで書いたが、いきなり update 文を実行して、update 文の結果が 0 だったら、
同じようなメッセージを出せばいいのか。

画面で、ユーザにもう一度画面を開いてもらい、当該受注番号のレコードが消されたら、
画面を開き直したときに、そのレコードは現れなくなるし。

204:デフォルトの名無しさん
09/05/27 00:20:41
おやすみ僕ちゃんw

205:デフォルトの名無しさん
09/05/27 00:33:30
一生懸命にたくさんの長文を書いてくれたけど、
どうしてJavaEEのほうがいいという結論に達したのか、全然わからなかった。

206:デフォルトの名無しさん
09/05/27 00:35:25
ぶっちゃけどれでもいいよね
実装が違うだけで目的は同じなんだから
JavaEEでもできるだろうけど他でもできるわけで
だからといってJavaEEが最高ってことにはならん

207:デフォルトの名無しさん
09/05/27 00:38:23
僕ちゃんがJavaEEわかってるわけないに1票

208:デフォルトの名無しさん
09/05/27 03:10:52
>>203
実際のところ、楽観的排他制御対応を謳っているFWはほとんど
UPDATE文にバージョンカラム値を条件に加えて、結果が0だったらエラーにする実装をしている
更新なのか削除なのかは、エラー後に再検索して判断する
そもそも「楽観的排他」は「あまり起こらない」ことを前提として、起こった場合は最初からやり直し
という方針で採用されることが多いから、SELECT FOR UPDATEを使う実装は少ないと思う
(オプションによって、一度空更新してトランザクション的なロックをかけたり・・・とかはあるけど)

209:デフォルトの名無しさん
09/05/27 05:59:32
>>196ありがとう

楽観的ロックでは、1つのトランザクションで複数のテーブルまたは複数のレコードを更新する際には、
デッドロックやそれに伴うデータの不整合になる危険性がある。したがって、1つのトランザクションで
1つのテーブルと1つのレコードを更新する事によりデッドロックの回避が可能になりますが、
これに基づいてDB設計と画面設計は相当慎重に行うべきである。また、S2Daoの排他制御は楽観的ロックなんで、
標準的なDaoクラスでDriverManager.getConnection().setAutoCommit(false)の設定をして
SelectForUpdateによる悲観的ロックを採用した方がシンプルでいいかもしれないね。

加えて、1つのトランザクションで複数のテーブルまたは複数のレコードを更新するケースでは、
rollbackを行えば、データの不整合は改善されるが、Webシステムで更新順序によるデッドロックの回避が
できるのかについては、現時点では僕の把握ではできないと思ってる。


210:デフォルトの名無しさん
09/05/27 06:15:43
>>209の追加

要約すると、
・1つのテーブルと1つのレコードを更新する仕様にする(デッドロックが起きないケース)
・デッドロックが起きた際には、rollbackよって回復する(デッドロックをrollbackによって回復するケース)


211:デフォルトの名無しさん
09/05/27 07:42:20
SelectForUpdateによる悲観的ロック()笑

やはりこの程度の認識だったのか・・・

212:デフォルトの名無しさん
09/05/27 08:33:38
select for updateで悲観的ロックになると思ってたのかよ。

213:デフォルトの名無しさん
09/05/27 08:41:39
悲観的ロックだろうが楽観的ロックだろうが、
複数テーブルを更新するときはFOR UPDATEを付けるし、
設計次第ではデッドロックも起きる。
そこは悲観的・楽観的とは関係ないんだよ。僕ちゃん。

214:デフォルトの名無しさん
09/05/27 08:47:22
>>210

さらに要約すると、排他制御はSelectForUpdateによる悲観的ロックを行い、デッドロック対策としては
1画面に可能な操作は、1つのトランザクションで1つのテーブルと1つのレコードを更新するだけに限る。
また、最終更新日を表示することにより、ユーザーによって変更してもよいデータであるかを判断してもらう必要がある。


215:デフォルトの名無しさん
09/05/27 09:31:39
>>214の追記

これを実現する画面設計としては、検索リストから詳細画面へ遷移し、登録/更新/削除を行う。
DB設計も、1画面に可能な操作は、1つのトランザクションで1つのテーブルと1つのレコードを更新する事を踏まえ
データモデリングしていく必要があるね。


216:181
09/05/27 11:03:15
でもいいのですが、
181=192=197=203 です。

182=209 、その他ではありません
(まぁ似たようなレベルかも知れませんが)

217:デフォルトの名無しさん
09/05/27 11:10:48
まぁ、一言で表現すると、スレッドセーフになるね。

218:デフォルトの名無しさん
09/05/29 14:09:32
セッションすくねーw

219:デフォルトの名無しさん
09/05/30 00:51:17
確かにえらい寂しいな。
しかも事例紹介を大部屋でやって、ひがさんのセッションを30人の部屋でやるとは…

220:デフォルトの名無しさん
09/05/30 00:57:08
スリムサンはSlim3の発表がメインなんじゃね

しかし実務やってる人には新技術より事例発表の方があるから人は集まるだろうけど
実例がSAStrutsとかみたいな今企業でよく使われるような物じゃないから
微妙なんだよなぁ

221:デフォルトの名無しさん
09/05/31 01:06:48
S2クリックとS2クロノスがいっぱい聞きたかったけど
15分か。。

222:デフォルトの名無しさん
09/05/31 01:10:04
携帯の事例発表とmobyletのセッション同時間にやるのってなんの嫌がらせなの

223:デフォルトの名無しさん
09/05/31 02:59:51
>>222
今からメールしたら、変えてくれるかも。
Seasar カンファレンスは、いつも聞きたいのが重なりすぎて困る。

224:デフォルトの名無しさん
09/06/01 22:55:40
@Resource(arg="@Arg(arg1="aaa",arg2="bbb",arg3="ccc"))
SearchSearvice searchSearvice;

てな感じで、SearchSearviceのオブジェクトのコンストラクタとかプロパティにデフォルトで値をセットできればええのになぁ。

225:デフォルトの名無しさん
09/06/02 00:13:35
別に普通に要素に代入すりゃええやん
アノテでやったら型が違ってたら何処でエラー出てるのか解らん

226:デフォルトの名無しさん
09/06/04 13:30:45
オレはむしろ
@Resource(arg="@Arg(arg1="aaa",arg2="bbb",arg3="ccc"))
SearchService searchService;

てな感じで、SearchSearviceのオブジェクトのコンストラクタとかプロパティにデフォルトで値をセットできればええのになぁ。
と思うぞ。

英語勉強しろよ。

227:デフォルトの名無しさん
09/06/04 17:39:14
例えばarg1がDateだったらどうすんの
タイプセーフにならんだろ

228:デフォルトの名無しさん
09/06/04 23:59:48
SAStrutsでつまってる。FormにMapを使いたいんだ。

form.TestForm.java に、
public Map<String,String> testMap;
を宣言して、
action.TestAction.java で
@ActionForm
@Resource
public TestForm testForm;
とした。
jspに、
<html:text property="testMap(test)" ></html:text>

として、入力した値が、testMap.get("test")で取れるようにしたい。。しかし、、
java.lang.UnsupportedOperationException: get
org.seasar.struts.action.ActionFormWrapper.get(ActionFormWrapper.java:113)
と出てしまう。どこか間違ってるか別の方法があるか、、、教えてえろいひと


229:デフォルトの名無しさん
09/06/05 00:18:01
ちょっと酷すぎてまず何を伝えればいいのか迷ってる
testMap(test)ってそもそもなんなんだよ

230:デフォルトの名無しさん
09/06/05 00:24:26
イロイロと初心者で面目ない…書式とか間違ってるのは勘弁を…
やりたいことはsubmitした時のアクションでtestForm.testMap.get("test")で取れるようにしたいんだ。。
testFormに
public String test;
とは置きたくないんだ。Mapに自由に格納したいのだです

231:デフォルトの名無しさん
09/06/05 00:27:17
いやだからその自由にって部分をだれかが実装してるの?
マニュアルに載ってなくてお前も実装してないならだれもそう実装してないってことでしょ
BeanUtilの該当箇所ラップして自分でカスタマイズしなよ

232:デフォルトの名無しさん
09/06/05 00:35:33
>>230
HttpServletRequestから取ってくればええやん

233:デフォルトの名無しさん
09/06/05 00:45:12
フレームワーク使わなければい(ry

234:デフォルトの名無しさん
09/06/05 00:52:43
フイタ

235:デフォルトの名無しさん
09/06/05 00:55:22
S2に限らず、フレームワークスレでいつも思うけど、
素で書いたら簡単にできるのにこのフレームワークはこんなこともできないんですか!
みたいな質問が多くて、じゃあフレームワーク使わないで素で書けよって思うことは多々ある。
自由な開発の弊害で苦労して一周回った上で、規約を縛ることの必要性を経験しないと理解できない部分なのかもね。

236:デフォルトの名無しさん
09/06/05 06:58:31
s2clickかs2wicketならできそう
sastrutsはstrutsに縛られてるから仕方ない部分がいくつかある

237:デフォルトの名無しさん
09/06/05 10:55:37
S2Click、S2Wicket は、まだメンテされているの?

238:ひがやすを
09/06/05 13:02:14
>>230
対応しました。

239:デフォルトの名無しさん
09/06/05 14:16:47
S2Clickはメンテされてる。
カンファレンスでもセッションあるみたいだし。

S2Wicketはされてないみたいかな。

240:230
09/06/05 19:38:12
>>238
ぅぉぉぉ、ありがとうございます

え、2chで質問しちゃいけなかったんすか。
MLとか好きじゃないんですよね、ゆとり♀サーセン

241:ひがやすを
09/06/05 21:39:28
黙れ

242:デフォルトの名無しさん
09/06/05 22:36:15
なりすましイクナイ

243:デフォルトの名無しさん
09/06/08 01:49:56
いつの間にかカンファレンスのセッションが増えてるな。
Slim3は必須のようだ。

244:デフォルトの名無しさん
09/06/08 23:03:20
事例発表3と
BigtableとJDOの勝ちパターン
は逆にすべきだろ。

事例発表なんか、聞きたい人少ないと思うんだけど。


245:デフォルトの名無しさん
09/06/08 23:06:33
安心して使ってください

という意味があると思うから大事だと思うよ。実績をアピールするのも大事

でもメンテされてないプロダクトばかりなのが選択する側としてはつらい

246:デフォルトの名無しさん
09/06/09 00:09:25
重い処理を走らせるクラスがあるんだが、そいつだけをHOT deployさせたくないんだよな
SINGLETONにしても、リクエストのたびにInitMethodはしるんで…

247:ひがやすを
09/06/09 00:32:04
Seasar2関連で、2chに技術的な質問はするなと何度言ったら...

248:デフォルトの名無しさん
09/06/09 00:41:21
MLかコミッタのblogのコメに匿名で投稿すれば半日で解決するのに
わざわざ2chで質問するってことはよっぽどひねくれてるんだよ

249:デフォルトの名無しさん
09/06/09 00:44:03
2chで質問されると余程困るのだろうか。

250:デフォルトの名無しさん
09/06/09 00:47:08
答える側は困らんけど
教えられる側は嘘教えられてもだれも訂正してくれないぞ

251:デフォルトの名無しさん
09/06/09 00:52:10
ヒガタンは怖いイメージがあるから
顔文字を使っておちゃらけたほうがいいと思う

252:デフォルトの名無しさん
09/06/09 00:57:23
困るのは技術的な質問に答えられないこのスレの住人w

253:デフォルトの名無しさん
09/06/09 01:01:16
まー全部答えられるかって言われると答えられないことの方が多いのは確かだねぇ。
質問のMLと雑談の掲示板で使い分けって事で。

254:デフォルトの名無しさん
09/06/09 01:01:38
>>246
コンテナ起動前にクラス先にロードしちゃえば?

255:デフォルトの名無しさん
09/06/09 07:09:54
2chで質問するのがいいとは思わないが、それだけMLでは質問しづらいのだろう

256:デフォルトの名無しさん
09/06/09 09:10:23
むしろ、2chではみんなトンデモな答えを期待してるんだから、ひががそれみて対応するほうがウザい。

「map対応してないんだね、糞だね」
っておとしめたいだけなのに、
「素早く対応したよ!2chで質問とかすんなよ」
とか、どう考えても場違い。

257:デフォルトの名無しさん
09/06/09 20:09:08
名前だけカタカナの外人ですら優しく回答してもらえるMLの何処か敷居高いんだ
JavaHouseに比べたら実家くらい快適な場所だわ

258:デフォルトの名無しさん
09/06/09 20:18:55
個人名出す必要もないしプロジェクトでseasar質問用のメアド作ってML入ればいいだけやんね

259:デフォルトの名無しさん
09/06/09 20:41:58
だからMLの敷居が高いんじゃないんだよ。
ネガキャンしたいだけなんだからこのスレはスルーすればいいのにコミッタが絡んでくるのがウザい。

260:デフォルトの名無しさん
09/06/09 20:48:14
キャンペーンじゃなくて実際ネガティブだからなここは

261:デフォルトの名無しさん
09/06/09 21:37:14
・本名参加でなくともメールアドレスという自分を示すものでやりとりするのがイヤ。もっともっともっと気軽に質問したい。
・完璧な回答ならもちろんだけど、何らかのヒント(もっといえば反応)が欲しい
・回答が無い場合、「なにか知ってるひといません?」と再度聞きやすい。多くのMLはそんな空気じゃない。
・「全文引用すんな、過去レス全部読め」などという人が大きな顔されるのがイヤ
・「どうしてそんなことをするの?」なんていう反応が大嫌い。普通に「できる・できない・こういうことか?」という反応だけでいい。
・質問以外の他人のやりとりをMLだと読まざる得ない状況になりやすいからイヤ

ワガママかね?

262:デフォルトの名無しさん
09/06/09 21:39:03
S2のMLで質問に回答がないことなんて
よっぽどカスみたいなのでもないと今まで一度もないだろ

263:デフォルトの名無しさん
09/06/09 22:20:10
>>261
> 多くのMLはそんな空気じゃない。

ML全般の話なのかSeasarのML固有の話なのかはっきりしろ

264:デフォルトの名無しさん
09/06/09 22:33:26
>>261
どうしてそんなことをするの?

265:デフォルトの名無しさん
09/06/10 00:27:56
・POP3/SMTPプロトコルが嫌い。HTTPじゃないと。最初にエッチがつくから。


266:デフォルトの名無しさん
09/06/10 00:42:42
webメール使え

267:デフォルトの名無しさん
09/06/10 01:19:15
俺は絶対に突っ込まないけど

268:デフォルトの名無しさん
09/06/10 07:43:00
俺もMLを敬遠するタチだけど、ようやく理由がわかった。
2chブラウザで見られないからだ。

269:デフォルトの名無しさん
09/06/10 12:34:03
>>268
全然違う話だけど、RSSリーダーもいまいちなれないと思ったら、
2chブラウザで見られないからだ、と>>268見て思った。腑に落ちた

270:デフォルトの名無しさん
09/06/10 13:20:15
2ch ブラウザで 簡易RSS リーダーを内蔵しているのもあるよね。V2C とか。
2chブラウザ風の RSS リーダーがほしい。

271:デフォルトの名無しさん
09/06/10 14:45:25
俺もJavaいまいちなれないと思ったら
2chブラウザで開発できないからだ、と>>269見て思った。腑に落ちた

272:デフォルトの名無しさん
09/06/11 09:55:38
>>262
カスは言うこともカスだな

273:デフォルトの名無しさん
09/06/11 13:18:52
ほめても何もでませんよ

274:デフォルトの名無しさん
09/06/12 00:42:52
後のSeasarスレファウンデーション誕生の瞬間であった

275:デフォルトの名無しさん
09/06/12 23:01:13
前日になっても講演者未定w

276:デフォルトの名無しさん
09/06/13 02:52:34
とりあえずヒガタンのほうれい線を触りに行くか

277:デフォルトの名無しさん
09/06/14 04:30:14
カビーって地味だけどT2よりいいかも

278:デフォルトの名無しさん
09/06/14 14:48:34
カビーの可愛さはどこからきているんだろうな

279:デフォルトの名無しさん
09/06/14 23:06:17
Cubby in Action => T2 in Actionといったら
空気読んで、SAStruts in Actionだろ。

280:デフォルトの名無しさん
09/06/14 23:08:58
>>277
ちゃんと使ってんのか?
お前みたいなやつはろくに触りもしないで
そのうち、BigTableがいいとか言うんだろ

281:デフォルトの名無しさん
09/06/14 23:16:32
>>280
shotタソ乙

282:デフォルトの名無しさん
09/06/14 23:31:30
2chらしくランク付けするか

Ymir
Cubby
T2
SAStruts
Teeda
S2Struts
S2JSF
S2Tapestry

追加訂正してくれ

283:デフォルトの名無しさん
09/06/14 23:33:53
Ymir
Cubby
T2
SAStruts



S2Struts



Teeda
S2JSF
S2Tapestry

くらいの差はあると思う

284:デフォルトの名無しさん
09/06/14 23:59:21
T2はまだそんなレベルじゃないだろ
shotタソのコメント欄見てみろ


Ymir
Cubby
SAStruts
S2Click



S2Struts



T2
Teeda
S2JSF
S2Tapestry
S2Wicket

285:デフォルトの名無しさん
09/06/15 00:21:13
昨日行ってきた。
4コマ目のひがたんの「BigTable と JDO の勝ちパターン」は、聴講者多数で、LT のあとにもう一度行われた。

Slim3 は、Google App Engine と Bigtable 上でしか使えないの?

あと >>282-284 で、ゆみるが先頭に来ている理由がわからない。
Cubby と SAStruts は使ったことがあり、いちおう(使う側としては)理解しているつもり。
Ymir は URLリンク(ymir.seasar.org) を読んだぐらいしか知識がない。

Ymir を否定しているのではなく、Cubby とかSAStruts とくらべてどういう点がよいのか聞いてみたい。

あと、T2 は S2JSF のようなプレゼンテーションのフレームワークではなく、
コントローラやプレゼンテーション層を結びつけるためのフレームワーク
(コントローラやプレゼンテーション層より、レイヤが一段下)ではなかったか?

※法政大学の外堀校舎は綺麗だな。
あんしんしておなか痛くなってもトイレに行けた。

286:デフォルトの名無しさん
09/06/16 02:06:30
あのおっさんのエントリ、後出しジャンケンじゃないか。
メーリングリストで言っておけばいいのに。

287:デフォルトの名無しさん
09/06/16 13:09:19
おっさんって誰だ?

288:デフォルトの名無しさん
09/06/16 17:42:53
いうまでもない

289:デフォルトの名無しさん
09/06/17 09:06:26
URLリンク(itpro.nikkeibp.co.jp)

ここのページの下の事例に
「ホット・デプロイ機能は,クラス数が多くなると遅くなる」
とあるけど、そうなのかね?

290:デフォルトの名無しさん
09/06/17 09:56:16
そりゃそうだろう。
クラスを走査して必要な分を再ロードするんだから規模が大きくなったら難しいんじゃない。

けど実際ベンチマークとってみたいな。

291:デフォルトの名無しさん
09/06/17 23:20:17
>>289
URLリンク(ml.seasar.org)
> 本来 HOT deploy では必要になったコンポーネントのみ
> インスタンス化されるので,システムに Dao が何千個
> 何万個あろうとも,アクセスされた画面の処理で
> 使われる Dao が少なければ極端に遅くなることは
> ないはずです.
>
> おそらく,どんな画面からも使われる,多くの Dao に
> 依存する巨大なクラスがあるなど,実際には不要な
> コンポーネントまでインスタンス化されるような
> 構成になっているのではないでしょうか?

要は設計が悪いと遅くなる

292:デフォルトの名無しさん
09/06/18 00:01:54
>>286-287
あのおっさん74年生まれか。higaタソやデブ元理事よりずっと若いじゃないか。
前代表理事よりも若い。おっさん失格だな。

293:289
09/06/18 00:21:35
>>291
情報どうもです。ということは、この事例の場合は設計が悪かったということですな。

294:デフォルトの名無しさん
09/06/19 10:09:47
マスターからメッセージが来たよ
URLリンク(d.hatena.ne.jp)

295:デフォルトの名無しさん
09/06/19 10:22:28
ひがブログなんか盛り上がってるね。

296:デフォルトの名無しさん
09/06/19 13:34:09
ひがやすをに「ガツン」と申し上げたい

297:デフォルトの名無しさん
09/06/20 02:43:33
何だかんだ言ってみんなヒガタン好きだなw

298:デフォルトの名無しさん
09/06/21 11:37:43
なんつうか、偏った人が多い気が。なにもSeasar界隈に限った話じゃないけど

299:デフォルトの名無しさん
09/06/21 11:57:24
やすをの自演カキコがうざい

300:デフォルトの名無しさん
09/06/21 15:06:39
何か新しいことをするには良い意味で偏らないとやっていけないのではないかな。

301:デフォルトの名無しさん
09/06/24 17:06:31
>285
>あと、T2 は S2JSF のようなプレゼンテーションのフレームワークではなく、
>コントローラやプレゼンテーション層を結びつけるためのフレームワーク
>(コントローラやプレゼンテーション層より、レイヤが一段下)ではなかったか?

T2はあるURLとPOJOとそのメソッドをマッピングするフレームワークだね。
普通のフォームとか、FlexやAjaxのリクエストも受けれるのが特徴。


302:デフォルトの名無しさん
09/06/24 17:37:15
時々t2の話題が出てくるがスレチだから誘導

Java+Webフレームワーク
スレリンク(tech板)

303:デフォルトの名無しさん
09/06/25 01:53:59
         ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <お前はオープンソースの何を知っているというのだ。
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ    <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /      |r┬-|    | (⌒)/ / / //  
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /  
ヽ    /      `ー'´      ヽ /    /     
 |    |   l||l 从人 l||l      l||l 从人 l||l   バ   
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、 ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) バ
                             ン

304:デフォルトの名無しさん
09/06/26 01:29:52
ごめんなさい。ダンコガイになりたかっただけなんです。

305:デフォルトの名無しさん
09/06/27 21:45:38
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \   知らないことを軽々しく語るなよ。
    |      |r┬-|    |   
     \     `ー'´   /   
    ノ            \
  /´               ヽ

            ___
       /      \
      /ノ  \   u. \ !?
    / (●)  (●)    \ 
    |   (__人__)    u.   | クスクス>
     \ u.` ⌒´      /
    ノ           \
  /´               ヽ

         ____
<クスクス   /       \!??
      /  u   ノ  \
    /      u (●)  \
    |         (__人__)|
     \    u   .` ⌒/
    ノ           \
  /´               ヽ

306:デフォルトの名無しさん
09/07/01 19:37:58
いい加減トップページ変えようよw

307:デフォルトの名無しさん
09/07/03 02:35:38
JavaでまともなフレームワークってSeasar2だけじゃん
Java勉強して分かったお
間違いない

308:デフォルトの名無しさん
09/07/03 02:40:27
まともなのは他にもたくさんあるけどね
バランス的に言うと一番使いやすいってのなら同意だが

309:デフォルトの名無しさん
09/07/03 02:51:12
Seasarのプロダクトのコミッタって一般人でもなれるの?

310:デフォルトの名無しさん
09/07/03 02:59:14
>>308
SAStrutsないと設定地獄になるよな

311:デフォルトの名無しさん
09/07/03 03:00:53
>>309
能力的には一般人しかいません
性格的には一般時にはなれません

312:デフォルトの名無しさん
09/07/03 03:05:54
まぁ、その一般人が作った物を使ってるんだけどな

313:デフォルトの名無しさん
09/07/03 03:14:39
Java1.4+Strutsって聞いただけで超絶ブラックだぞ

314:デフォルトの名無しさん
09/07/03 03:20:34
誰もJava1.4とStrutsなんて発言してないが

315:デフォルトの名無しさん
09/07/03 06:55:03
基地外しかいない悪寒

316:デフォルトの名無しさん
09/07/03 09:00:57
>>310でいきなりStrutsの話になってふいた
やはり日本だとフレームワーク=Strutsなのかな

317:デフォルトの名無しさん
09/07/03 12:27:47
javaでwebするならそうかも。

318:デフォルトの名無しさん
09/07/03 18:35:04
つ Java EE 6

319:デフォルトの名無しさん
09/07/04 00:14:09
節子それ、Seasarと違う

320:デフォルトの名無しさん
09/07/04 00:14:47
S2EE6みたいなの出たらどうすんだよ

321:デフォルトの名無しさん
09/07/04 00:17:16
SEE6に名前変更されるから無問題

322:デフォルトの名無しさん
09/07/04 18:30:02
結論:Springでオールオッケー

323:デフォルトの名無しさん
09/07/04 23:49:49
Spring 使った場合のフレームワークって今だと何が一番いいんだろな。
Strut2 と WebFlow+SpringMVC ぐらいが今の候補なんだが。

324:デフォルトの名無しさん
09/07/05 00:10:42
スプ2Strutsとか出せばいいんだよ

325:デフォルトの名無しさん
09/07/05 00:20:54
Springは社内フレームワークのためのフレームワーク

ってゆーすけがいってた

326:デフォルトの名無しさん
09/07/05 00:44:26
Springはいちいちなんかめんどいんだよな

327:デフォルトの名無しさん
09/07/05 00:57:24
>>326
そこを社内フレームワークでカバーするんだよ
Springを素のまま使うのは間違ってる
Seasarとは違うのだよSeasarとは

328:デフォルトの名無しさん
09/07/05 00:59:37
ってゆーすけがいってた

329:デフォルトの名無しさん
09/07/05 01:39:35
Springが面倒って…1.x時代の話してるのか?

330:デフォルトの名無しさん
09/07/05 01:49:57
>>329
>>323からの流れが読めてないな
Spring単体の話はしてないお

331:デフォルトの名無しさん
09/07/05 01:55:11
なんでもできるってものよりも
おすすめの構成でセットになってるのがいいんだよ

332:デフォルトの名無しさん
09/07/05 11:43:56
Springはオススメ構成用意はしてない
ただ、各種プロダクトが真っ先にSpringのコネクタ用意するから簡単につながる
Seasar2はメンテされてるプロダクトかどうかを判断するのが難しい

333:デフォルトの名無しさん
09/07/05 16:16:02
えろい人に質問Seasar2使うなら
JBOSS と GlassFish
ってどっちが良いのと?

334:デフォルトの名無しさん
09/07/05 16:45:17
S2に限らずGlassFishがいいと思う

335:デフォルトの名無しさん
09/07/05 19:31:04
S2使うならTomcatでおk

336:デフォルトの名無しさん
09/07/06 12:59:01
所詮、いち島国のマイナープロダクトにすぎんからなシーサーは。
トータルで見たらSpringの方がいいにきまってる。


337:デフォルトの名無しさん
09/07/06 14:53:14
知名度と使い勝手が比例するのならそうだけど
マイナーだから駄目ってのはなんだかなぁって感じ

338:デフォルトの名無しさん
09/07/06 20:53:04
案件でSeasar使うところ増えてない?
まわりの半分くらいはSeasarなんだが

339:デフォルトの名無しさん
09/07/06 22:04:55
半分は言い過ぎだけどSAStrutsとあと意外にTeedaが多いw

340:デフォルトの名無しさん
09/07/06 22:16:08
Teedaがかれた宣言出したのが去年だから、今くらいの案件で使われるというのは不思議ではない。
JSF 2.0が少しずつ見えてきたこの時期に1.1ベースというのがどれだけ影響するか。

341:デフォルトの名無しさん
09/07/06 22:44:07
ちょっと前までまともな事例ってひまわり証券くらいしかなかったのにな
リクルートの新規サイトも地味にS2らしい

342:デフォルトの名無しさん
09/07/06 22:50:40
>>341
ソースは?

343:デフォルトの名無しさん
09/07/06 23:38:31
URLリンク(itpro.nikkeibp.co.jp)
リクルートの他にソフトバンクモバイルもそうらしいな

344:デフォルトの名無しさん
09/07/06 23:43:34
>>343
㌧だが2年前の記事で新規サイトのソースではないな

345:デフォルトの名無しさん
09/07/07 01:45:49
リクルートは今SAStrutsだよ
俺がソース

346:デフォルトの名無しさん
09/07/07 02:33:49
リクルートは大分人減ったかい?

347:デフォルトの名無しさん
09/07/07 11:14:07
リクルートで転職してる人が減ってるよ。
つーか、求人がないので他でも減ってる。

348:デフォルトの名無しさん
09/07/07 14:28:54
リクルートは転職屋じゃなくて情報出版業だぞ
リクルートエージェントかなんかと勘違いしてないか

349:デフォルトの名無しさん
09/07/07 15:48:08
TeedaとかJSF系ってさ、GUIコンポーネントっつーのかな?HTMLコンポーネントそのまま使える案件ならいいけど
デザイナがあげてきたHTML+CSSをシステムに組み込むような案件だとツラくないか?
昔試して俺には無理ぽだったので、そんときゃS2strutsを使ったよ

350:デフォルトの名無しさん
09/07/07 16:01:16
JSFなんてイントラ案件でしか使わんだろあんなもっさり

351:デフォルトの名無しさん
09/07/07 17:24:22
制約の情報をあんまり告知せずに革命的テクノロジーとか言ってリカマンドしてくるベンダーとの戦い。いつ終わるのこれ

352:デフォルトの名無しさん
09/07/07 21:06:00
>>349
決められたコンポーネントを多用する社内アプリならば十分
もっさりということも特にない

用途に合わせて最適なフレームワークを選択するのが普通
1つだけに絞ろうとするのが間違い

353:デフォルトの名無しさん
09/07/07 21:22:24
少数精鋭で小回りがきく組織ならそれが普通かもしれんが
5次受け6次受けの兵隊引き連れてる大所帯の組織では普通じゃない

354:デフォルトの名無しさん
09/07/07 23:39:17
>>345
俺もリクだが
S2使っているとこはさ結局悲鳴しか聞こえてこんよ
S2&SAStruts使えるって感じるならSpring&Struts2やWicketは天国だと感じるだろな


355:デフォルトの名無しさん
09/07/07 23:41:15
おまえ偽者だな
悲鳴が聞こえてたのは独自フレームワークだった所だろ

356:デフォルトの名無しさん
09/07/08 00:14:31
偽者って言われちゃったよ・・・
本質を理解できない奴にいちいち説明するの面倒だな


357:デフォルトの名無しさん
09/07/08 00:19:16
本質ってなにかね。

358:デフォルトの名無しさん
09/07/08 00:24:54
>>354
どんな悲鳴だ?本物なら具体的に書いてみろよ

359:デフォルトの名無しさん
09/07/08 00:49:48
こないだまでRでぐるなびみたいなサイト作ってたけど(カットオーバーおめ)、
SAStrutsは非常に使いやすかった。
Spring + iBATISなんかより全然な。

360:デフォルトの名無しさん
09/07/08 00:54:14
>>358
ギャァァアグゥガッゥァァウヒャャアァァア

361:デフォルトの名無しさん
09/07/08 01:01:55
S2&SAStrutsってのが全く理解してない証拠だと思う

362:デフォルトの名無しさん
09/07/08 01:05:43
>>359
おま、比較対象が

363:デフォルトの名無しさん
09/07/08 01:08:51
SAStrutsなんてDIコンテナが何かなんて気にする必要もないプロダクトなんだから
中身がS2だろうがEJBだろうがSpringだろうがどうでもいい話じゃね?
フロントエンドのPGは単にアクションとJSP書くだけだもん

364:デフォルトの名無しさん
09/07/08 03:47:04
悲鳴ってのはプロジェクト管理に起因する事象だろう
最後はとにかく人を突っ込むってことをやってたようだ
事実余り Java を知らん人とかも増援で入ってたし
Hプロジェクトが火を吹いてたのは S2とは無関係だと思うな

365:デフォルトの名無しさん
09/07/08 04:09:50
業務委託じゃRなんてかなりスキルないと入れてもらえなくて有名だが

366:デフォルトの名無しさん
09/07/08 04:52:15
面接を受けると、それも頷ける部分はあるが、
実際のところはそうではないようだ。
ぶっちゃけ協力会社による。
今はどんどん切られてるから、スキル無い人から減ってるけど、
去年の忙しい時期なんかは、とにかく人を入れろって感じ。

そんで件のプロジェクトは火を吹いてたんで、とりあえず人を突っ込んだ。
そしてガバっとまた人が減る。

それに、2年前とかの企画だと、どーしよーもないソースも結構転がってるよ。
S2採用以前のね。
自社FWがどーこー言う話はよく聞く業界だけど、
こればっかりは、何を間違えてこうしちゃったの?って思わずにはいられない。

367:デフォルトの名無しさん
09/07/08 10:45:46
>354
>>S2&SAStruts使えるって感じるならSpring&Struts2やWicketは天国だと感じるだろな
えー、そんなに違うもんなのか?

368:デフォルトの名無しさん
09/07/08 11:28:48
>>367
S2Wicketこそが天国への門

369:デフォルトの名無しさん
09/07/08 12:26:27
Struts2覚えるのが面倒

370:デフォルトの名無しさん
09/07/08 12:48:22
Wicketってメモリ喰う、いや喰わないとか論争してて不吉な匂いがするよ。
マイクロベンチで検証してOKで実際にデカいアプリ作ったらダメでしたとか、ってことになるんじゃねーかとか
考えすぎ?

371:デフォルトの名無しさん
09/07/08 12:49:42
>>354
S2よりSpringが素敵なところってどこ?オフショア使えるとこ?

372:デフォルトの名無しさん
09/07/08 14:14:33
Seaserを実際に使ったことがない(ドキュメントは読んだ)
俺が印象だけで答えてみるテスト。異論反論は受け付ける

Springが勝っている点

* 世界的に見て、事実上の標準技術と見做されている
* 情報量が多い (世界規模 vs 日本のみ)
* サポートしているコンポーネントが多い

Springが負けている点

* 開発を軌道に乗るまでが面倒
→ Springはいろいろとお膳立てしてやらんとまともに使えない


あと、オフショアに投げるなら、
なおのことSpringを生で使わせたらアカンと思う


373:デフォルトの名無しさん
09/07/08 17:49:09
>>* 情報量が多い (世界規模 vs 日本のみ)
英語読めない人が多い場合は情報量が逆転。
Springでもプロジェクト回せる時点である程度のレベルの人員が集まってるんだろな。
>>372がウラヤマシス

話それるけどS2は使用感は結構よいけどドキュメントの品質はあんまよくないよね。
なんかまだるっこしい書き方が多いし
「XXはセッションにキーXXで管理しておりライフサイクルはXX」
みたいな知りたい情報がML上にしかなくてドキュメント上では
「XXはコンテナが自動制御するので簡単に使えます」とかそんな書き方だったりとか。

374:デフォルトの名無しさん
09/07/08 18:14:16
ん?
Springを直でいじらんといかんのはアーキテクト役のメンバだけだと思うぞ。
そういうやつはフツーに英語読むだろ

開発者はSpringを意識しなくて良いようなアーキテクチャにするか、
または開発ガイドラインで決められた通りに使うだけという形にする。
だから開発者は英語が読めなくてOKだと思うがいかがだろうか


375:デフォルトの名無しさん
09/07/08 18:22:41
>>372、たけぞう氏、ゆーすけ(誰?)の意見をまとめると

大人数で俺々フレームワークのベースとして使う→Spring
少人数で直に使う→Seasar

でおk?

376:デフォルトの名無しさん
09/07/08 18:29:23
>>375
Spring -> DIコンテナの使い方が普及していない時期に作られた糞のようなフレームワークがたくさん(w

Seasar2 -> 使いやすさ重視。フレームワークもいいね!

377:デフォルトの名無しさん
09/07/08 19:04:59
>>Springを意識しなくて良いようなアーキテクチャにする

それが理想なんだけどさ、アーキテクトだけが把握してればおkならいいんだけどさ・・・

・フレームワークって下位レイヤを隠蔽するよう設計されるが
現場の開発では高確率でトラブル発生して下に降りる必要が出てくるよね。
Springの場合はどお?安定・信頼して使えるかんじ?
S2系は一生懸命作ってる人には悪いけど、
プロダクトのテストケースは充実しているわりにバージョン上げたときとかトラブル多かった。

・メンバにはコンフィグファイルを一つもいじらせないように出来る?
おれんとこだとS2使ったプロジェクトでそれに近い感じで進行させたら、
肝心のところでDI使ってない汚いコードになってしまって失敗したよ・・・

378:375
09/07/08 20:08:01

> ・フレームワークって下位レイヤを隠蔽するよう設計されるが
> 現場の開発では高確率でトラブル発生して下に降りる必要が出てくるよね。
> Springの場合はどお?安定・信頼して使えるかんじ?

少なくとも俺は、Springがらみでトラブルになったことは殆どないし、
万一のことがあっても、こういうときにこそ情報量の差(英語圏含む)と
いうものが如実に表れてくると思う。

大抵のトラブル(殆どは設定ミスだが)はググればすぐに原因がわかったし、
いままで、Springのソースを読むハメになったケースは一度もないかな。

> ・メンバにはコンフィグファイルを一つもいじらせないように出来る?

できてるよ。俺は<context:context:component-scan>を使ってる。


379:372
09/07/08 20:10:15
やべまちがった。
↑は375じゃなくて372ですた。


380:デフォルトの名無しさん
09/07/08 20:26:50
>>378
> できてるよ。俺は<context:context:component-scan>を使ってる。

それで済むのって自動ワイアリング以外の設定がない場合だけだよね?
プロパティに文字列やMapを設定するようなコンフィグ的な設定はどうしてる?

381:372
09/07/08 20:53:43

個別で設定が必要なBeanは俺も個別設定してるよ。
確かにそういう場合は<context:component-scan>は使えないな。たぶん。
ただ、それにしても、そういう設定をやるのはアーキテクトの仕事だと思う。

開発者がいちいちBeanのプロパティを指定しなければならないケースって
イマイチ想像が付かないんだが…
例えばサービスクラス毎にトランザクションの切りかたが違うとか、
そういうのか?


そういえば、前提条件を話してなかったな。
俺は今回の話では、Webアプリケーション開発(社内業務システム程度)を
イメージして話している。そこで食い違いがあるのならすまんかった


382:372
09/07/08 21:00:03
あと言っとくと、俺はSpringとSeasarの比較において
あくまでも開発全体の観点から論じているだけで、
細かい技術要件で優劣を付けるつもりはないぞ。

それに、そういう議論するとすぐに荒れるしな。


383:デフォルトの名無しさん
09/07/08 21:01:09
>>381
もろもろの制約値など業務的な設定を可変にしておく必要があるだろ
それをSpringのxmlでやるやらないを含めてどうやるか考えるのはアーキテクトの仕事だが
個別の設定をいちいち書くのはアーキテクトの仕事じゃない

384:372
09/07/08 21:06:48
あーすまん。
「アーキテクト=開発リーダー」
と読みかえてくれ。そういうつもりで書いた。


385:デフォルトの名無しさん
09/07/08 21:27:34
詳しくない奴ほど語りたがる

386:デフォルトの名無しさん
09/07/08 21:29:08
>>384
読み替えても質問の答えは見つからないが?
まさか業務的な設定値を全てリーダーがxmlに書いてるとか?
いやいやいやいや、それはあり得んだろ常識的に考えて

387:デフォルトの名無しさん
09/07/08 21:29:53
語リスト上等

388:372
09/07/08 21:33:02
業務的な設定値って、設定ファイルだと思うんだけど(違うなら指摘してくれ)、
俺は開発者全員がそれぞれ設定ファイルを書く必要がある案件は見たことないんだけど。
普通のWebアプリ程度で、そんなに設定項目が多いことがあるのか?

…つーか話が本筋からズレてるんだけど。
まだ設定ファイルの話を続けたいのなら俺は去るぜ


389:デフォルトの名無しさん
09/07/08 21:34:11
サービス自動登録的なアノテーション制御を開発リーダーが一発書いて終わり。
DI対象の設定や可変項目やら、つまらん設定値の個別制御はSpringでやらせない。
ってことかな。Spring使ったことないから想像だけど。

390:デフォルトの名無しさん
09/07/08 21:37:49
>>まだ設定ファイルの話を続けたいのなら俺は去るぜ
うまくプロジェクト回してる人っぽいから俺は話聞きたいyo!
色々語って欲しい。

391:デフォルトの名無しさん
09/07/08 21:43:04
>>372
>* 開発を軌道に乗るまでが面倒
> → Springはいろいろとお膳立てしてやらんとまともに使えない

ん?セットアップはS2より楽だよね?

392:デフォルトの名無しさん
09/07/08 21:43:32
>>390
うまく回してるように見えるか?w
Spring上にオレオレフレームワークを作る必要がある案件には見えないな
Seasar直でやった方が楽だったんじゃねーの?って見える
さらに言えばアーキテクト(開発リーダー)でもなさそうに見える

393:デフォルトの名無しさん
09/07/08 21:44:23
>>391
でたなw
お前NetBeans好きだろ?www

394:372
09/07/08 21:50:21
> サービス自動登録的なアノテーション制御を開発リーダーが一発書いて終わり。
そう。

> DI対象の設定や
これをDIコンテナでやらんかったら存在意義がwww

> 可変項目やら、つまらん設定値の個別制御はSpringでやらせない。
そう。だって依存性の解決をするのがDIコンテナの役割であり、
設定パラメータのインジェクションは「DIインジェクション」
ではないと考えている。
そういう細かいことまで無理矢理やらせようとするから
おかしなことになるんじゃないかと思うけどな。


>>391
すまん、俺はSeasarを実際に使ったことないから比較できん。
だけどトランザクションの設定やら何やら、最初の設定は結構面倒だと思うぞ。


>>392
> Spring上にオレオレフレームワークを作る必要がある案件には見えないな
オレオレフレームワークを作ったなんて話は一言もしてないぞwww

> Seasar直でやった方が楽だったんじゃねーの?って見える
ならその理由を具体的に書いてくれよ。ぜひ議論に参加してくれ。

> さらに言えばアーキテクト(開発リーダー)でもなさそうに見える
それはこの議論で重要なの?
ここは2chなんだし、バックグラウンドなんてどうてもよくて何を語るか全てだと思うが。



395:デフォルトの名無しさん
09/07/08 21:56:51
>>394
> オレオレフレームワークを作ったなんて話は一言もしてないぞwww

>>374=372じゃねーの?
これって実質オレオレフレームワークだろ。>>377以降これで盛り上がったんだぜ?

> 開発者はSpringを意識しなくて良いようなアーキテクチャにするか、

396:デフォルトの名無しさん
09/07/08 21:57:21
>>394
軽い開発を目標にしてるなら<tx:annotation-driven/>かいて
サービスに@Transactionalつければいいだけだよね?

397:デフォルトの名無しさん
09/07/08 22:05:22
S2嫌いでSpringマンセーの奴と議論したときに
最終的にはS2はEclipseとTomcatに依存してるのが嫌いだとか
言いやがったことがあったな

398:デフォルトの名無しさん
09/07/08 22:05:41
>> サービス自動登録的なアノテーション制御を開発リーダーが一発書いて終わり。
>そう。

アノテーションハンドリングってxml上の設定を書くだけ?javaの制御コードも?
javaのコードもならS2比較で言うとSAStrutsとか
各S2フレームワークプロダクトに相当する気がする。
たぶんS2使う開発者はアノテーション制御を自分で書いたりまでしないで
SAStrutsみたいなのをそのまま使ってると思う。
あ、僕は煽ってる人じゃないので念のため。
xmlだけで色々できるならspringちょっとすごいかもしれない。

399:372
09/07/08 22:07:10
>>395
<context:component-scan>使っただけでオレオレフレームワークになるのかwww

例えばStrutsとSpringを無改造で使って<context:component-scan>と組合せるだけの
シンプルな構成でも、どのクラス群にどういう役割を持たせるかを明確化して
開発ガイドラインとして規定したら、それはアークテクチャだと思うけど。

フレームワークは、あくまでもアークテクチャを実現する手段の
一つに過ぎんと思うぞ。

>>396
それだとクラスが密結合になるんじゃないか。
単体テストのことを考えたらDIしたいぞ。


400:デフォルトの名無しさん
09/07/08 22:13:11
Spring+HibernateEntityManager(コンポーネント自動検出 without アノテーション編
URLリンク(d.hatena.ne.jp)
たぶんこーゆーの書いてるってことだろな。記事読んでないけど。

401:デフォルトの名無しさん
09/07/08 22:13:15
>>399
> <context:component-scan>使っただけでオレオレフレームワークになるのかwww

それだけ?mjd?
だったら>>377へのレス(>>378)はすべきじゃなかったな
>>378で最初に引用されてるフレームワークはどう見たって
Springじゃなくオレオレフレームワークのことだからな

402:372
09/07/08 22:17:11

>>400
あ、まさにそれそれ。

>>401
>>378は、聞かれたから答えただけだぞ。



議論が本筋からズレてきたから、そろそろ戻していいですかね。

今度は俺から質問なんだが、Seasarサイドから見て
Springの問題点を教えてくれないか。
個別の技術要素じゃなくて「開発全体で見た観点」で。




403:372
09/07/08 22:23:39
>>397
それはヒドイwww
俺はそんな逃げかたしないし、間違いがあったら認めるぞ

あと、俺は別にSpringマンセーじゃなくて、
ただの「Springは使ったことはあるがSeasarは使ったことがない開発者」だ。


404:デフォルトの名無しさん
09/07/08 22:28:09
>>402
・自分やメンバにスキルやモチベがない
・時間との戦い
・トラブった時
など考えて英語情報を漁ってまでSpring使う気になれない。
使ってないから役に立たない回答でスマンコ
Springでおすすめの書籍やサイトあったら教えてくれよ

405:デフォルトの名無しさん
09/07/08 22:28:28
>>402
Springまともに使ってないけど、最初に感じたのはアプリ全体をどう作っていいか
わからないってことだな
SeasarだとS2+SAStruts+S2JDBC+BeansとかS2+Teeda+S2Dao+S2Dxoとか
フルスタックでうまく考えられててDoltengですぐに始められる
ようするに>>331

406:デフォルトの名無しさん
09/07/08 22:33:30
Springが2.xになる前にSeasar2使い始めたからそのままSeasar2
Springが最初からXML地獄を考慮してれば違っただろうな
タイミングは重要だよ
EJBだってSpring出る前に3になってれば流行っただろう

407:デフォルトの名無しさん
09/07/08 22:34:30
Wicketマンセーな人が >>370 にコメントつけてくれるとウレシス

408:デフォルトの名無しさん
09/07/08 22:35:51
あー俺も>>406と同じだわ

409:372
09/07/08 22:39:04
>>405
>>406
なるほど、確かに。それは言うとおりだな。
俺はSpring1.x時代は知らんし。

じゃあ確実にSpringが負けているところは
結局>>331なんだということで理解した。


410:デフォルトの名無しさん
09/07/08 22:59:53
Springのエバンジェリストみたいなやつがガンガン宣伝すればまた状況は違うんじゃない?
S2の場合ひが氏の釣り師レベルが高くて上手く宣伝できてるってのもあると思う

411:デフォルトの名無しさん
09/07/08 23:03:12
まあ Springが安定してるよって話聞けただけでも参考になった。
周りに使ってる奴いないんだもん

412:372
09/07/08 23:11:36
>>404
ここはそれなりに参考になった。
URLリンク(d.hatena.ne.jp)
ただし、どちかというとStruts2の話がメインであるが。
ちなみにここの人が書いた本はダメダメらしいから要注意な。

>>410
確かに、ヒガ氏のプレゼンスも含めSeasarはちゃんと市場を
意識していて、ニーズに合った製品を市場に出せていると思う。
まあ>>331のことだが。

それに引き換えSpringは…
URLリンク(www.springsource.com)
日本は眼中になしwww


>>411
そうなのか。逆に俺のまわりはSpring一色だな。
SpringもSeasarも成熟しているし、一度どちらかに染まってしまうと、
どうやら積極的に乗り換える理由もなさそうだから、
民族大移動はもう起こらんのかもしれんな。


413:デフォルトの名無しさん
09/07/08 23:33:34
最近はPHPの案件が多いんだけど、
Javaってそろそろ落ち目なんかな?

414:デフォルトの名無しさん
09/07/09 00:13:48
>>412
ここはSeasar2スレ
Seasar2案件が多いやつが目立つのは仕方ない
国内に限定してもおそらくSpringのほうが多いはず

415:デフォルトの名無しさん
09/07/09 00:37:32
Seasar2
CakePHP
が好き
プログラマとしては素人だけど
新しい物好きの俺が言うんだから間違いない

416:デフォルトの名無しさん
09/07/09 01:37:53
で、おまえは何を言ったんだい?w

417:デフォルトの名無しさん
09/07/09 09:37:21
>国内に限定してもおそらくSpringのほうが多いはず
そうなの?どっかに統計ないかな?

418:デフォルトの名無しさん
09/07/09 09:45:17
【DI】Java Spring Frameworkを語るスレ 4.0
スレリンク(tech板)
あんま盛り上がってるように見えない

419:デフォルトの名無しさん
09/07/09 10:09:48
>402
>今度は俺から質問なんだが、Seasarサイドから見て
>Springの問題点を教えてくれないか。
>個別の技術要素じゃなくて「開発全体で見た観点」で。

component-scanが入って、特に優劣はないとおもう。
S2暦長いけど、今となってはそんなに違わないんじゃないかな。


420:デフォルトの名無しさん
09/07/09 11:53:19
>>372ってどーゆー構成で作ってたの?お勧めspringプラグインとか教えてよ

421:372
09/07/09 14:00:44
>>420

Springのプラグインって何だ?

Springのサブプロジェクトのことなら、
悪いが俺は何も使ってないからわからん。
というか何も使う必要はないって感じかな。
SpringにはDIコンテナ以上のことは求めてないし。

Eclipseのプラグインのことなら、これもやはり使う必要はないと思っている。
だって<component-scan>を使えばapplicationContext.xmlは最初に一回だけ
書けばいいので、IDEの支援はいらないし。


422:デフォルトの名無しさん
09/07/09 14:58:03
S2はHOT reloadingが便利だな。

423:デフォルトの名無しさん
09/07/09 16:53:15
>>402
Spring開発したときに苦労したのは、ろくな本が無いこと
Spring2入門買ったら前作のSpring入門読めとか書かれてあって、ふざけるなと思ったw
本家の英語ドキュメントが充実しているからなんとかなったけど

S2はS2側のお勧め構成の意識がすごく強くて
言われる通りに構成すればいいという安心感はあるな
JTA実装やコネクションプール実装も持ってるし、自前のO/Rマッパーもあるし
自前じゃないけどSAStrutsもあるから、とにかくオールインワン色が強い
あと、HOT Deployは大きな優位点だと思う

SpringはWebフレームワークとO/Rマッパーを自分で選択して、自分で組み合わせるのが前提だから
開発リーダーの腕次第というところがある
その分組み合わせの幅が広くて、新しいFWもすぐにSpring対応するのは便利だと感じた

424:デフォルトの名無しさん
09/07/09 17:42:30
Spring1.x+hibernate+Strutsを経験して
今Seasar2.4+dbflute+teeda使ってる俺が通りますよ。

>>406
俺もそれ。FWを選定している最中に、teedaの特集に乗せられてしまった口です。
結局teeda自体はあれだけど、Seasar2+dbfluteは結構幸せだよ。

Seasarは用意されたドキュメントがなんとも目的の事が探せないというか、
今一統一感がないというか、タライ回しにされてる感があって微妙。
でも、MLで聞く度胸さえあればなんとかなるし、ある程度要望も聞いてくれるし、
日本語なblogもたくさんあるしね。

ココで技術的なことは聞いちゃダメらしいけどw

425:デフォルトの名無しさん
09/07/09 17:47:05
>>424
>ココで技術的なことは聞いちゃダメらしいけどw

嘘を嘘と見抜ける人なら問題なし。

426:デフォルトの名無しさん
09/07/09 18:00:23
全部嘘だから問題なし

427:デフォルトの名無しさん
09/07/09 18:01:23
>>424
参考までに、Teedaがどうあれだったのか聞かせてほしいw

428:デフォルトの名無しさん
09/07/09 18:57:59
>>427
誤解を与えてしまったかも知れんが、今はそんなにアレじゃないよw

なんつーか、BAD KNOW HOWが溜まるまでがちょっとつらかった。
(これは何でも同じだけどね)

現時点での大きなアレなところは、
・JavaScriptが前提になっている部分があるので、携帯向けはつらい。
・ネストされたプロパティを扱えないんで、ページクラスが煩雑になる
 (これは、次期バージョンで対応するとかしないとか)
詳しくは、MLを見るようになw

429:デフォルトの名無しさん
09/07/09 19:34:39
悪いこといわんからJSF系はやめておけと忠告しておきたい。

430:デフォルトの名無しさん
09/07/09 19:55:48
>>429
俺はJSF使ったことないんだが、よかったら具体的な理由を教えておくれ


431:デフォルトの名無しさん
09/07/09 20:31:05
>>424
ドキュメントの出来の悪くて困る。

432:デフォルトの名無しさん
09/07/09 20:39:28
ドキュメントはフルスタックじゃないんだよな…

433:デフォルトの名無しさん
09/07/09 23:44:48
>>406
EJB3活用してる人って全然いないのかね?

434:デフォルトの名無しさん
09/07/10 00:50:25
spring使いのspring好きです
s2やsastruts使ってみましたが魅力がまったくわかりません
どなたか教えてください
ちなみにjava系のメジャーなフレームワークならweb系に限らずほぼ一通りわかるかと思います


435:デフォルトの名無しさん
09/07/10 00:58:54
>>434
わからなくていいよ

436:デフォルトの名無しさん
09/07/10 03:04:06
spring使いの spring 好きです。
すみません、うちの >>434 がご迷惑をおかけしまして・・・・

>>434
どう魅力がないか書いてくれないと、議論が進まないから書いてよ
おれも知りたいし

437:デフォルトの名無しさん
09/07/10 03:10:11
spring使いのspring好きで、s2やsastruts使って魅力がわからなかったなら
ここに来る必要なくね?そんなに自分の判断に自信が持てないのか?

438:デフォルトの名無しさん
09/07/10 07:08:23
>>434
Seasar2のHot Reloadingは、どうですか?

439:デフォルトの名無しさん
09/07/10 08:24:47
S2はおすすめ構成以外が地獄。

440:デフォルトの名無しさん
09/07/10 09:26:40
>>434
自分が使って魅力を感じなかったならそれでいいだろ。
springはS2より魅力的ってのなら、具体的に語ってみればリアクションあるかもよ

441:デフォルトの名無しさん
09/07/11 19:04:34
Hot Reloadingってみんな快適に使えてるか?
クラスローダ周りですぐ動かなくなったりpermgen死亡したりするんだが

442:デフォルトの名無しさん
09/07/11 19:59:00
>>441
URLリンク(ml.seasar.org)
URLリンク(www3.vis.ne.jp)

443:デフォルトの名無しさん
09/07/13 00:46:08
結局、Hot Deployがいけてない所ってJava言語自身の戦略が抱えている問題を、
Seasarが戦術で何とかしようとしているところから出ているんだよな。

それを「革命的なアドバンテージ」と喧伝する奴がいる一方で
「本質的な解決には何もつながっていない」と考える奴がいるのも仕方ないことだと思うよ。

「ふいんき的にOKポイ」ってだけでコミットするような開発者は日本では基本的にB級のクソだから
Railsだってコミット前にはアプリケーションサーバーを再起動して動作確認するのが基本なんだけど
ひがはどうやらその辺の確認は軽視しているように見える。

アーキテクト的にはそのへんは開発者の不注意だと、
責任を押し付けることが出来るから重要視する必要が無いんだろうね。

あと、Hot Reloadingって何www?今まで散々Hot Deployで推してきたのにwww。

444:デフォルトの名無しさん
09/07/13 01:01:00
何言ってるんだこいつ

445:デフォルトの名無しさん
09/07/13 01:07:26
Seasar試したくてインストールしたかったんですが、ソフトウエア更新でリポジトリーが見つかりませんと言われる
エクリプスはGlassFish Tools1.0です。


446:デフォルトの名無しさん
09/07/13 01:30:04
何言ってるんだこいつ

447:443
09/07/13 01:40:55
>>444
お前、本当に意味が分からなくてそうかいてる?
それとも俺の発言を単に貶めたいからそう書いてる?
酔っ払ってるから省略して書いたけど、ある程度お前にも分かるように書いてみるよ。

> 結局、Hot Deployがいけてない所ってJava言語自身の戦略が抱えている問題を、
> Seasarが戦術で何とかしようとしているところから出ているんだよな。

同一VMで同クラスを再度読み込む場合、どれだけ工夫してもPermGenが消費される。
これが、JavaVMが本質的に抱えている問題。けど、SeasarはHotDeployを実現するために
PermGenを食い尽くすまでは別クラスとしてロードする戦術を取った。
だから、HotDeployを繰り返すとPermGenを食い尽くしてエラーが出るって言うのは
本質的に回避不可能な現象。

> それを「革命的なアドバンテージ」と喧伝する奴がいる一方で
> 「本質的な解決には何もつながっていない」と考える奴がいるのも仕方ないことだと思うよ。

これは上記の詳細な説明を読んだら理解できると思う。というか、これ以上平易にはかけない。

> 「ふいんき的にOKポイ」ってだけでコミットするような開発者は日本では基本的にB級のクソだから
> Railsだってコミット前にはアプリケーションサーバーを再起動して動作確認するのが基本なんだけど
> ひがはどうやらその辺の確認は軽視しているように見える。

んで、HotDeployと類似の問題はヒガが対抗意識を持っているRailsの開発でも発生する。
Railsでもソースがリロードされる領域とリロードされない領域は別なんだ。
んで、Railsで開発している奴らも結局、コミット前にはASを再起動して
最終の動作確認を行う。(少なくとも心ある開発者は)

それなのに「ASを再起動しなくてサクサク開発」とか言ってる
ヒガは基本的に適当な奴なんだろうなと俺は思ったのだ。

>>446で気づいたが、単にファビョったキチガイコミッタの嵐なんだな。真面目に反応して損した。

448:デフォルトの名無しさん
09/07/13 01:52:25
>>447
誰か「最終」確認で再起動することを禁じてるのか?
「最終」以外の確認はしないのか?それは再起動しないとできないのか?

449:デフォルトの名無しさん
09/07/13 01:57:45
>>447
いや解った上でバカじゃないのと言ってるわけで
詳しくない奴ほどトンチンカンでどうでもいい説明したがるんだよな

450:デフォルトの名無しさん
09/07/13 02:00:13
今pluginフォルダー見たら503になってた
サーバーの転送量越えてる
いつものことですか?

451:デフォルトの名無しさん
09/07/13 02:08:38
Perm領域だってGCで解放されることを知らない酔っぱらいが暴れてると聞いて

452:デフォルトの名無しさん
09/07/13 02:16:01
別に再起動してはいけない、なんて誰も言ってないし、
毎回必ず再起動する必要はないってのは便利だし、
何をファビョってるんだ?こいつは。

453:デフォルトの名無しさん
09/07/13 02:17:24
>>448
> 誰か「最終」確認で再起動することを禁じてるのか?
そんなこと禁じる会社は馬鹿だろう。当然誰も禁じていない。
だが、サクサク開発とは対照的な再起動を好んで行う開発者がいるだろうか?
特に無知な開発者が。

> 「最終」以外の確認はしないのか?それは再起動しないとできないのか?
コミット後にテスターによる最終確認は当然行う。それが出来てない開発会社はクズだ。
だが、開発者がコミット前に再起動を行わない状態での確認を行ってバグを出した場合、責任は誰のせい?

「サクサク開発」を推した人間?それともそれを信じた人間?俺は信じた人間だと思っている。

けど、頭の弱い開発者を騙す奴は業界のためにならないとも思っている。

>>449
そうか、俺の発言を理解したうえで「何言ってるの」って返してくれていたわけか。
けど、簡単に「お前詳しくない」とか「トンチンカン」ってレッテルしただけじゃ
普通の人は「どこでそう思ったんだろう?」って疑問符が残るだけで結局誰も得しないんだぜ。

>>451
ままままままままじで!!!!!?????知りませんでした。申し訳ない。

俺、全然Seasar使ってなくてSpring使ってmvn:jettyで開発してるんだけど、
一定回数以上のリロードを行うとPerm領域があふれて落ちてションボリズムなのよ。

んで結局「バイトコード改変したクラスの定義情報を何度も読み込んでるから、それで溢れてるんだろうなぁ」
って予測してたんだけどそうじゃなかったのか。

ちなみにPerm領域のGCが開放される条件ってどんなのか知っていたら教えてください。
資料へのポインタでもいいです。お願いします。

454:デフォルトの名無しさん
09/07/13 02:34:50
コミット前に再起動して確認すりゃ良いだけだろ
悪いのは道具じゃなくて
道具を使いこなせない側

455:デフォルトの名無しさん
09/07/13 02:46:11
Perm領域のGCが開放

456:デフォルトの名無しさん
09/07/13 02:52:33
>>454
知ってるがな。俺がそれで困ったことなんて一度も無い。

>>455
悪かったがな。そんな程度の間違いで目くじら立てられても困る。

457:455
09/07/13 02:57:37
まあ酔ってるというし。
ちょっといじわるしたかっただけです。

頻繁にPermGenエラー出るならごもっともだけど
俺そんなに出なかったけどな。
出たら再起動って事でも別にサクサク感は損なわれないけどな。
規模にもよるのかもしれないですな。


458:デフォルトの名無しさん
09/07/13 03:14:16
>>456
困った事が無いなら何に目くじら立ててるの?

459:デフォルトの名無しさん
09/07/13 03:20:12
>>453
> > 誰か「最終」確認で再起動することを禁じてるのか?
> そんなこと禁じる会社は馬鹿だろう。当然誰も禁じていない。

「誰か」はひが氏の意味で書いたんだがな。
ひが氏含めて誰も禁じてないんだから再起動して最終確認すればいいだけ。
修正確認は再起動しないで確認すればいい。
お前のポリシーとHot Deployという道具は矛盾も対立もしない。両立する。
で、お前は何をファビョってるんだ?

460:デフォルトの名無しさん
09/07/13 03:24:58
素直な目で見ないから苦労するんだよ
欠点見つけたって騒ぎたい気持ちはわかるけど
本当にそれが大きな欠点なら、君程度の奴が発見する前に他の人が見つけてるから

461:デフォルトの名無しさん
09/07/13 03:33:11
というか、既に周知の事実なわけで。
Hotdeployの利便性を覆すほどのものではないとことも含めて。

462:デフォルトの名無しさん
09/07/13 03:40:12
>>453
>一定回数以上のリロードを行うとPerm領域があふれて落ちてションボリズムなのよ。

それはただのメモリリークだ常識で考えろ

>ちなみにPerm領域のGCが開放される条件ってどんなのか知っていたら教えてください。

ググれカス

463:デフォルトの名無しさん
09/07/13 09:34:26
俺は>>453じゃないけど
Perm領域をJVMオプションで増やしておく、ぐらいFAQに書いとけと思った。
あとクラスローダー周りでトラブルること多いけど「サクサクです。以上」ってのもどうかと思った。
S2陣営がターゲットとしている、「難しいことを考えなくても使えるものが欲しい人達」には
対処できないだろコレ

464:デフォルトの名無しさん
09/07/13 10:33:07
JavaRebelすげー快適だぜ

465:デフォルトの名無しさん
09/07/13 10:58:49
>>453
>俺、全然Seasar使ってなくてSpring使ってmvn:jettyで開発してるんだけど、
使ってなくて書いてたのかよw

>んで結局「バイトコード改変したクラスの定義情報を何度も読み込んでるから、それで溢れてるんだろうなぁ」
それくらい簡単に調べられるだろ
ツール使ってもいいし、ClassLoader取ってきて解放していないclassを調べてもいい

Commons LoggingとかCGLIBとか、そういう問題を抱えているライブラリは過去沢山あったから
何かがメモリリークを起こしてるんじゃない?

466:デフォルトの名無しさん
09/07/13 11:47:36
よーわからんが >>453はSpringでhot deployやってんの?想像で書いてるだけなの?

467:デフォルトの名無しさん
09/07/13 13:01:30
-XX:MaxPermSize=128m

468:デフォルトの名無しさん
09/07/13 15:00:09
>>464
調べてみた。これって有償プロダクトなんだな。

なんかオープンソースでsamurai-reloadableというのがあるらしい。
動かしてみたがNullPointerExceptionで落ちてちゃんと動かんかった


469:デフォルトの名無しさん
09/07/13 15:07:32
URLリンク(code.google.com)
これか。ググっても他に情報ないな。

470:デフォルトの名無しさん
09/07/13 15:20:31
>>468
お試し期間あるからやってみ?S2とは別次元の快適さだよ。

471:デフォルトの名無しさん
09/07/13 15:35:17

ヒガーに全否定されてるけど大丈夫なのかwww

(PDF注意)
URLリンク(event.seasarfoundation.org)

このPDFで紹介されているのが
samurai-reloadable(kimu-reloadable)な。
俺は動かんかったけど。



472:デフォルトの名無しさん
09/07/13 17:00:33
PDFちゃんと読んだ?なかなかよく問題点がまとまってた。

>JavarebelのHOT deployの実装を見ればわかると思いますが、リクエストのたんびに全コンポーネントをデプロイして破棄していると思います。
>これでは、クラス数が増えると使い物になりません。

実際試さずに想像で書いてるっぽい。
ってか実案件(コンポ数多いってこと)で試したらS2のは重かったけど
JavaRebelは大丈夫だったぜ。対してS2は

>1回の画面遷移で行われる再登録処理に30秒くらいかかってしまう。

これじゃ使い物にならんだろが!現場の話聞いてんのかと小一時間
アーキテクト乙。

473:デフォルトの名無しさん
09/07/13 17:05:31
pdfリンク先のこれ
URLリンク(d.hatena.ne.jp)
>Railsアプリは最後には、1画面遷移で15秒以上かかるようになってしまった。
意外だ。LLっぽくねぇ・・・

474:デフォルトの名無しさん
09/07/13 17:05:30
>>472
木村氏乙

475:デフォルトの名無しさん
09/07/13 17:14:25
>>472
木村氏じゃないのでsamuraiとかのことはよくわからんけど、
落ちないようになったら試してみたいとは思った。

476:デフォルトの名無しさん
09/07/13 17:15:43
安価間違えたゴメンネ

477:デフォルトの名無しさん
09/07/13 17:16:35
>>472
>>289-294嫁
要は>>472の設計が悪い

478:デフォルトの名無しさん
09/07/13 17:31:32
472だけど、
>>477
thx。みんながこれ把握&綺麗に設計実装してうまくやってるともあまり思えんが・・・
「設計が悪い」と言われたら、まあその通りなんだろなと認める。

479:デフォルトの名無しさん
09/07/13 18:28:33
S2じゃなくてSpringだけど、prototypeで定義しているコンポーネントが多すぎて重くなったということはあった
構成を調べて、Controller系のみをprototypeで残して、
fieldに一時的な情報を保持していないDaoクラス等をsingletonに変えたらかなり早くなった
結局は>>477のリンク先で書かれてるように無闇に関連コンポーネントが多すぎる設計が問題だったんだけど
そこには手をつけられないってことが実際は多いからな

480:デフォルトの名無しさん
09/07/14 19:06:03
「BigTable と JDO の勝ちパターン」の資料どっかにねーかな。
あるいはヒガに関係なくkeyvalue系?の設計指標的なやつ

481:デフォルトの名無しさん
09/07/14 23:29:06
ひが本、ソフトウェア更新でインストールしてるけど、503なんで上書き更新にしといた方がよかったのに

482:デフォルトの名無しさん
09/07/15 10:38:25
>>480
今出てるWeb+DBでがまんというのは
どうでしょう


483:デフォルトの名無しさん
09/07/15 12:49:15
ご都合ドットコム作った人のblogがオススメ

484:480
09/07/15 16:27:43
>>482,483
ありがとー。読んでみる。

485:デフォルトの名無しさん
09/07/16 01:32:21
>>473
development モードで動かしているんじゃないの?
Rails は、本番 production モードで動かすものだし、
production モードは体感できるぐらい速いけど
(もちろんリロードしないが)

486:デフォルトの名無しさん
09/07/16 01:44:46
>>485
話が読めないバカ

487:デフォルトの名無しさん
09/07/16 01:44:48
>>485
HotDeployうんぬんの文脈で出てきたんだから、
developmentモードで遅くなる事を問題視しているのは明らかでは。

488:485
09/07/16 02:00:20
すんまそん

にしても、いくらでかいアプリ作ったといえど、development モードでそんなに遅くなるかなぁ
アプリ(システムのでかさ)というより、そのコンポーネントがどれくらい子供(参照)を抱えているか、ということらしいが

だから >>472 の設計が悪い、という話になるのか

489:デフォルトの名無しさん
09/07/16 02:06:24
設計に気をつけても100画面とかになると普通に重くなるが

490:デフォルトの名無しさん
09/07/16 02:08:04
>>489
Railsの話?

491:デフォルトの名無しさん
09/07/16 20:31:55
ひがのblogホントにイライラさせるな。
2chの話題に頼みもしないのにからんでくるわ。バッドノウハウも貯まって来ていますと書きながらリソースへのポインタ無し。

こいつにオープンソースを語られる日本が不憫だ。

492:デフォルトの名無しさん
09/07/16 20:43:36
ならば代わりに語って日本のオープンソースをリードしてくれ

493:デフォルトの名無しさん
09/07/16 20:49:44
>>491
バッドノウハウ自体が普通に知られてる(>>442)からな

494:デフォルトの名無しさん
09/07/16 23:28:26
>>491
ひがっちはインスタンスと考えるんだ。
最初の発想はよかった。インターフェイスから
実装クラスまで、しかし彼はインスタンス化
されちまった・・・。そういうことなんだよ。

495:デフォルトの名無しさん
09/07/17 02:56:00
バッドノウハウってのは、アプリの品質が悪かったりインターフェースがいけてない時にユーザが本来不必要な工夫をすることなんだけど、シーサーにはバッドノウハウが溜まったんだw 良かったね

496:デフォルトの名無しさん
09/07/17 12:50:16
ここイライラしてる奴多いねw

497:デフォルトの名無しさん
09/07/17 12:53:17
あちこちのコミュニティで相手にされず、ここに不満だけ書いているやつがおおいから仕方ないだろw


498:デフォルトの名無しさん
09/07/17 12:55:11
うわ、マジでここのネタに反応してるわ
ウゼェwww


499:sage
09/07/17 13:14:30
URLリンク(b.hatena.ne.jp)

"Log4j使ってて、weavingされてるクラスでLog logger = LogFactory.getLog(getClass());とかしてると危険なんだよね"
というコメントが気になったぜ

500:sage
09/07/17 13:40:15
java技術系blogチェックしようとしたらjava-jaの内輪ネタがすげーうっとおしくて萎えた

501:デフォルトの名無しさん
09/07/17 13:51:44
>>499
Log4JでなくCommons Logginの間違いだな
LogFactory#releaseAll()呼べばおk

502:デフォルトの名無しさん
09/07/17 14:04:12
HOT deployだと動くけどCOOL deployだと動かない

503:デフォルトの名無しさん
09/07/17 14:08:14
よくあることだ気にするな

504:デフォルトの名無しさん
09/07/17 16:13:21
>>499
クラスを記述するのでなくgetClass()を使うと、バイトコードエンハンスされたクラスが登録される
ClassLoaderが解放されない問題は、こんな形でAOPで拡張したクラスがどっかに登録されて
解放されないことによって起こりやすい
SingletonS2ContainerFactory.destroy()を呼び出せば
内部でLogFactory.releaseAll()実行するのでクラスも解放される

AOPを使うときは、対象となるクラスに対してgetClass()を使わないのが無難
バッドノウハウの一つ

505:デフォルトの名無しさん
09/07/17 16:22:43
>>503
mjsk

506:デフォルトの名無しさん
09/07/17 17:05:33
>クラスを記述するのでなくgetClass()を使うと
XXX.classなら大丈夫なの?なんで?

507:デフォルトの名無しさん
09/07/17 17:37:40
>>496-496
S2のコミュなんて特に親切な部類に入るのに
そこで相手にされないってよっぽどだな
一度JavaHouseででも揉まれてきた方がいいと思う

508:デフォルトの名無しさん
09/07/17 19:34:19
>>505
>>442のリンク先にも書いてある

509:デフォルトの名無しさん
09/07/17 19:50:18
>>506
XXX.classじゃAOPで拡張されたクラスは取れない
だがAOPで拡張されたクラスかどうかは重要じゃないから気にすることはない
クラスがキャッシュされてるとそのクラスローダーを破棄できないことが問題

510:デフォルトの名無しさん
09/07/17 20:39:35
>>499 からの Log4j 関連の話だが、知らなかった。

Seasar2 の Hotdeploy をつかっておらず、Spring で AOP している場合で、
Log logger = LogFactory.getLog(getClass()); とする書き方をしている場合で、
Tomcat の reloadable="true" としている場合、
再コンパイルしたら Tomcat がその web アプリをリロードするが、
こういうときも、前回の ClassLoader の破棄に失敗するの?

Tomcat で reloadable="true" としているけど、
いつも10回ぐらい続けると、ParmGen の領域で OutOfMemory とか出る。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch