【Java】DIコンテナって本当に便利か?

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2008/08/20(水) 23:23:26
インターフェースクラスやら設定やら増えまくって
かなりめんどくなってんだけどw
2008/11/28(金) 02:24:15
>>299
つか、いまどきHibernateやらSpringやらもアノテーションだろ。
2008/11/28(金) 02:24:51
>>300
antの、XMLで条件分岐や繰り返しや変数代入ってプログラム書かされるのはイヤになんない?
2008/11/28(金) 07:34:04
XML地獄とか、いつの時代の話をしているんだよ、っという感はある。
2008/11/29(土) 09:15:28
例え自動生成してたとしても、XML地獄がそこに存在してるんだよ。
2008/11/29(土) 09:26:57
今はXML地獄ではなくて、アノテーション地獄だろ。
306デフォルトの名無しさん
垢版 |
2008/11/29(土) 10:14:29
XMLよりはマシっしょ、とつられてみる。
2008/11/29(土) 10:49:33
アノテーションはその場に書いてある
XMLは違うファイルをいちいち開いてみなければならない
2008/11/29(土) 12:18:43
Javaは複雑化し過ぎ。
2008/11/29(土) 16:30:43
>>307
俺は逆だと思う。
XML地獄は、設定をすべて一箇所にまとめておける。
アノテーションは、ソース開いてみないとわからない。

トランザクションなどの挙動を変えるときに、アノテーションはソースコードを編集しないといけないが、
XMLの場合は、設定ファイルをいじるだけ。

DIコンテナが登場した初期の思想、「設定をソースから追い出す」を、アノテーションは壊してしまっていると思う。

※アノテーションがすべて悪いといっているわけではない
310デフォルトの名無しさん
垢版 |
2008/11/29(土) 21:06:32
>>309
言いたい事を俺はどこまで理解できるか覚束ないレベルなんだが、
たとえばO/Rマッピングが一切のSQL文の排除を理想とするなら、SQL文定義ファイルは邪道になっちゃうよね。
設計思想に理想はあるべきでも、ほどよく妥協させてくれる仕組みがあるのが一番と思うんだが。
設定を一切合切ソースから追い出すのに、時間をかけすぎるくらいなら少しあってもいいんじゃ。コードの形式美を追求するためだけに書く人間が人生を浪費させられるんじゃねw
最後のひと言※があるからわかっちゃもらえると思う。俺はもうXMLオンリーの世界に帰りたくないw
なーんて。
2008/11/30(日) 05:31:11
eclipseみたいなIDEで編集してwarに固めてデプロイするのに
ソースいじったらコンパイルが必要とかはもうデメリットじゃないと思う。
ロジックの階層に応じてxmlなりアノテーションなりにまとめておければ
いいんじゃないの?設定ファイルにif文や変数いれたりアノテーションに
ビジネスロジック入れるようになるとやりすぎだと思う。
アノテーションでvalidateするのもvalidate処理が分散してちょっと嫌。

ORMはSQLを排除するんじゃなくて、速度を気にしないでいいところは
自動生成しちゃおうよって事だと思う。チューニングが必要なSQLだけ
外部ファイル書き出しでいいでしょ。つかみんなそうやってない?
2008/11/30(日) 13:46:22
>>309
トランザクションの挙動みたいにアプリケーション横断なものは、それはそれでまとめておけばいいだろ。
2008/11/30(日) 15:05:23
開発中の一覧性というなら、アノテーションの使用状況みればいい。
Seamみたいにカスタムアノテーションで共通設定をまとめれれば、設定を一箇所にまとめておける。
>>309 はアノテーションの使い方や、設定とアプリケーション構成記述の違いをわかってないだけではないか?
2008/11/30(日) 23:34:11
派生開発や保守対応での既存ソースコード変更には厳格な手続きが必要で神経質になる客先が多いし、
アノテーションが散らばったソースコードを元にライブラリマイグレーションする事を考えると鬱になる。
5年前に良いと言われていたものを今見てみるとひどいだろ? 5年後はどう?って感じるのも事実。
2008/12/01(月) 01:15:16
で、それがXMLで設定なら解決できるというのは、能天気すぎやしないか?
2008/12/01(月) 07:21:26
XMLで設定すれば解決できるなんて一言も言ってないが?
2008/12/04(木) 14:45:42
>>291
>これは実際Strategyパターンなのです。 依存性注入は(私の見るところ)基本的にひとまとめに使われるStrategyパターンです。

同意。
2008/12/07(日) 17:52:43
自動テストツール使わないなら、
DI使ってる意味が無いという事が分からない低能が多くて困る
流行ってるらしいからとかって理由だけでDI導入すんな!
2008/12/07(日) 18:25:47
( ゚д゚)ポカーン
2008/12/07(日) 19:21:05
まぁこんなもんだろ・・
一般のプログラマの能力なんて。
2008/12/07(日) 21:38:30
318はどう見ても釣り
2008/12/07(日) 23:24:37
全部のクラスに頑張ってログ出力書いたりログインチェック書いたりしたいんだろう
2008/12/07(日) 23:36:21
>>322
それは、AOPの機能じゃん。
まぁ、AOPのためにDIがあるといってもいいのかもしれないけど。
2008/12/07(日) 23:47:49
まぁ純粋にDIだけ使ってるのって無いよね
SeasaもSpringも
EJBは知らんけど
2008/12/08(月) 00:41:32
今どきトレースログとか書くの?
サービスクラスだけじゃなくて?
2008/12/08(月) 01:51:40
まあ、書くこともあるんじゃない?
俺は書かんけど。
327デフォルトの名無しさん
垢版 |
2008/12/10(水) 12:40:10
N1マッピングがめんどい。



めんどい。
2008/12/10(水) 15:43:35
ログインチェックだってDI使わなくても
filter挟んだりベースクラスでやるよね。
全部のクラスにコピペする人なんてさすがに見たこと無い
2008/12/10(水) 17:26:32
いやそれAOPでやることだし。DIじゃないよ
2008/12/10(水) 17:29:43
>>328
filter は HttpServlet に依存するが、
DI にすることで、HttpServlet に依存しない環境でもログインチェックをすることができる。

たとえば、業務機能は、web 画面でもバッチでも Service クラス の execute() を実装する、
みたいな方針になっているとき。

バッチにも実行ユーザという概念があったときは、filter にせず DI でのやり方にすることで、
web画面でもバッチでも処理方式を統一することができる。

こうしておくと、web 画面の Service クラスのテストを、
Servlet コンテナを立ち上げずに JUnit 等から単体駆動することもできる。
2008/12/10(水) 18:18:38
いやだから
DI以前だってベースクラスの一カ所に実装しておくから、
全クラスにコピペするような馬鹿は見たこと無いんだけど、
という事が言いたいんだけど理解してくり
2008/12/11(木) 01:58:01
各メソッドを同じ前後処理でつつむときどうするんの?
AOPでできるとか言うが、AOPの実現手段としてDIがいいってことじゃねぇの?
2008/12/11(木) 02:02:12
ぶっちゃけDIの中にあるPOJO信仰は異常だと思う。
EJB3.0はバランスがよくて好感が持てる。
DAOパターン信者の俺にJPAは少しきついが。
2008/12/11(木) 13:08:10
>>331
処理対象クラスを柔軟に変えたり、
複数の横断的処理をそれぞれ別の対象クラス群に対して実装したいとき
多重継承が出来ないJavaでは限界がある
それを一気に解決出来るのがAOP
AOPがある今では、ベースクラスでそういう処理を実装するのはメンテナンス性が激しく下がるので
なるべく避けるようにしている
2008/12/11(木) 14:53:32
AOPの便利さはわかったけどさ
AOP/DI以前でも>>322が言うように
>全部のクラスに頑張ってログ出力書いたりログインチェック書いたり
するやつがいたのか?って聞いてるんだけど

まあログ出力はステップ実行の無い昔は全部書いたけどさ
2008/12/11(木) 15:45:46
>>335
ログインチェックしないのか?
サーブレットフィルタはAOPじゃないという話か?
運用のためのログ出力は不要か
2008/12/11(木) 17:34:54
自分はやらないって奴に他の奴は殆どやってると説いても無駄なんじゃね?
2008/12/11(木) 17:37:25
>>335
だからAOPが無い時代にベースクラスでそれをやろうとして
StrutsのActionクラスの継承づくしみたいなボロボロな形になったんだよw
それを今でも続けたいのならずっとそうしてれば?
一緒に仕事をする人は迷惑なだけだろうけど
2008/12/11(木) 17:51:31
だからログインチェックはするし
ベースのexecute()でチェックしてからdoExecute()するだけだから
「Actionクラスの継承づくし」みたいなことにはならなかったし
(なったとしても別の問題だし)、Struts/2以降ならfilter/interceptorだし。

それをやらないなんて一度も言ってないだろ。
AOP/DI以前には全クラスにコピペなんてしてたのか?そんなやついないだろって
言ってるだけじゃないか。ま、どうでもいい話題だしどうでもよかとにあん
2008/12/11(木) 18:04:48
ごめんfilterはログインチェックには使ってないわ
visitor系Actionがあるから
interceptorはAction毎にどれを使用するか指定できるけど
2008/12/11(木) 22:50:41
てかfilterは典型的なAOPじゃん
2008/12/12(金) 00:40:43
interceptorって、名前からしてAOPっぽいんだが
2008/12/12(金) 00:44:08
interceptorインタフェイスはアスペクト指向だよねー
2008/12/17(水) 22:43:49
AOP以前からAOPちっくな設計は普通のオブジェクト指向設計の一環としてやってたよ。
AOPを喧伝する人を見かけたら、マトモなOO設計出来ない人なんじゃないかと警戒する。
2008/12/18(木) 02:00:12
なんだ、単なるOO自慢か。
2008/12/18(木) 08:24:22
おや・・・酔った勢いで変な事書いた。ごめん。
2008/12/18(木) 08:35:56
誰でも簡単に使える仕組みを作ってそれを宣伝したらアホってどんな感覚だよw
>>344は自分しか理解できない仕組みしか作れなかったと言ってるようなもんじゃん
2008/12/18(木) 08:51:04
宣伝(せんでん)ではなくて喧伝(けんでん)ね。
「盛んに言いふらすこと。世間でやかましく言いたてること。」
酔った勢いとはいえ、申し訳ない。では!
2008/12/18(木) 10:22:59
>>344
そういうオレオレシステムをフレームワークとして汎用的に提供したと思えばいいんじゃないか?
それすらも嫌なのなら、ご自慢のシステムwもフレームワーク化して世に出してみれば?
350344
垢版 |
2008/12/18(木) 20:34:35
>>346>>348は俺。
AOP自体は別に否定してないよ。他の言語なら言語の仕組みとして提供されていたりもするし。
2008/12/19(金) 00:10:37
>>291
以前から分散アプリサーバ系の構築をやってきた者からすると、
DIではじめて何かできるようになったというより、以前からできてたことを、
コンテナなしでテストできるようになって便利になったという感想になるのだと思う。
352デフォルトの名無しさん
垢版 |
2009/03/10(火) 08:40:15
>>352
(´・ω・`)ショボーン
http://imepita.jp/20090124/089930
2009/04/19(日) 18:20:24
こやつめw
354デフォルトの名無しさん
垢版 |
2009/05/17(日) 14:07:47
>>352
オヤスミ…
  <⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
2009/05/17(日) 20:35:36
開発が減ったのか
ものすごい過疎っぷりだな
356デフォルトの名無しさん
垢版 |
2009/05/19(火) 18:08:08
>>354
 Z
  z
  z
 <⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
2009/06/10(水) 18:10:00
話すことがないんだなぁ
やっぱり製品作ってなんぼだな
2009/06/11(木) 08:51:30
もうDIコンテナは当たり前になって、便利かどうかという話ではなくなってるからな。
2009/06/13(土) 04:22:18
前にDIコンテナ使ってないプロジェクトで、開発用DBのトリガの引数が変更されて
本番DBとズレが生じて、仕方なく設定ファイルで読み込むクラスが変わるような
仕組みを作ったけど、常に必要ってわけじゃないな。

DIコンテナが喜ばれてるのはDI以外の部分だよね?
インスタンス管理とかトランザクション管理とか。
2009/06/13(土) 04:26:54
DI以外の部分がDIに立脚してる件
2009/06/15(月) 02:15:29
まあそうだけどさ
362デフォルトの名無しさん
垢版 |
2009/07/17(金) 02:07:27
結局、結論として、使った方がいいんですか?
使わない方がいいんですか?

そこんとこ教えて下さい。
2009/07/17(金) 02:17:18
てめぇ、Springスレにも書き込んだ奴だな!
2009/07/17(金) 02:23:18
はい、そうなんです。

流行ってるのはなんとなく分かるんですが、色んなサイト見ても何が
いいんだかさっぱり分からないんですよ。

フレームワークを使う事が目的になってる気がしてなりません。

それ以上の価値は、一体どこにあるんでしょう??
2009/07/17(金) 02:28:09
>>364
お前みたいな屑を兵隊として使えるようになると分かる
2009/07/17(金) 03:55:48
あはは(笑)

まあそれは俺を使ってみてから言ってください(笑)

で、何がよくなるんですか?
2009/07/17(金) 04:38:35
>>366
使えるかどうか判断してやるからスペック晒してみろ
2009/07/17(金) 05:52:51
>>367
24歳 ♀
165センチ
45キロ
胸はC
顔は うちの総務の高山さんの若い頃に似てるそうです。

つかえますか?
2009/07/17(金) 06:28:27
俺より背が高いから却下
2009/07/17(金) 12:18:41
165cm/45kgでCカップってありえないと思う…
2009/07/17(金) 12:42:09
>>367
まぁスペックなんて晒しても無駄ですよ。

そんなもん所詮こけ脅しにしかならないし。
実力とか応用力とか本当に使えるかどうかなんて実際に
仕事やらしてみるしかないんすよ。

人事なんてそんなもんだと思ってます。
2009/07/17(金) 12:48:58
必要ないなら使うな。お前みたいな屑がblogでspringって
何するもん? 使う必要あんの? フレームワークを使うことが
目的になってない? とか訳分からんチラ裏ばっか書くから
google先生がゴミばっか拾って汚染されていく。
2009/07/17(金) 13:05:42
そんなもん書いてねーっすよ(笑)

必要ないなら使わないのは当然ですが、必要性をお教え頂きたいのです。

依存性の注入とか言いますが、結局は設定ファイルを簡単に読み込む
ためのものなんですか?
それを単純に文字列の値からオブジェクトにまでしたもの??
2009/07/17(金) 14:07:17
>>371
> 実力とか応用力とか本当に使えるかどうかなんて実際に
> 仕事やらしてみるしかないんすよ。

もう十分わかったよ。お前は使えないから消えろ。
2009/07/17(金) 14:21:13
やだぴょーん(笑)

DI にこだわる意味を教えてもらうまではいるぴょーん
2009/07/17(金) 14:23:29
ああもう夏休みか
ヌルーの季節ですな
2009/07/17(金) 14:27:05
誰もこだわってないだろ。便利だから使ってるだけ。
何が便利かは人によって違う。
スパコンの計算能力が不要な人にスパコンの価値は理解できない。
DIも同じ。HelloWorldしか作ってないやつにDIの価値は理解できない。
2009/07/17(金) 14:45:19
>>377
いや…なんて言うんですかね、つまり、特定の状況では DI コンテナ
なしで開発するよりも DI コンテナありで開発した方が効率がいいと
皆さん考えている訳ですよね?

その状況を知りたいのです。

どういう時ですか?? もうプロジェクト全部?文句なしで?
だったら、次のプロジェクトで試しに使ってみようと思ってます。
2009/07/17(金) 15:03:10
横から口を挟むが、DIそのものが便利かっていうと単体テストの時の
クラス入れ替えが便利になる程度。真正面からDIを勉強するとそういう説明ばっかで
あまりメリットが見えてこない。

みんなが便利に使ってるのはDIコンテナが持ってる機能で、例えばオブジェクトを
インジェクトするときにちょこっと書き換えてAOPでトランザクション管理やらせたり、
インスタンスの生成管理をコンテナにさせてソースの記述量が減ったり、そういうこと。
2009/07/17(金) 20:58:42
目的がない奴が使っても意味ない
マネジメントできずに下手なPGになんでもインジェクションされて終わり
381デフォルトの名無しさん
垢版 |
2009/07/17(金) 22:12:14
DIコンテナのデスクトップ番のようなものってありますか?
2009/07/17(金) 22:50:45
springもseasarもデスクトップで使えるだろ。
guiceくらいが一番バランスいいかもしれんが。
2009/07/18(土) 00:01:22
>>379
ふむふむ…。
なんだか複雑な事情ですね。

まぁ一回使ってみりゃ分かるんですかねぇ。
でも納期が8月末のプロジェクトなんで、ちょっと冒険する気に
ならないな…………。
2009/07/18(土) 00:35:27
DIコンテナの利点が分からないってことは、利用しても使いこなせないって事。
だから、使わないほうがいいと思うよ。
2009/07/18(土) 00:56:15
>>384
でもそれって「フレームワーク」の思想に反するんじゃないんですかね?

フレームワークの上に乗っかって作業してりゃあバカでも恩恵に与れる
のがフレームワークってもんなのでは??
2009/07/18(土) 01:22:32
馬鹿のまわりが恩恵に預かるのでは・・・
2009/07/18(土) 01:41:45
どんなFWであっても、馬鹿がFWの上に乗っかって作業すると、平気でFWを無視し続けてグダグダになる法則。
2009/07/18(土) 02:38:43
DIコンテナはフレームワークじゃない。その上でフレームワークを構築するんだよ。
2009/07/18(土) 04:04:54
struts1.3 + spring2.5でdelegatingactionproxyで連携
しようと思っています。
この場合、DIするためにActionクラスにインスタンス変数を
持たなければならないのですが、この変数はスレッドセーフで
動作するのでしょうか?
しないならば、どのような解決策が考えられるでしょうか?
どなたかお知恵のある方、ご解答よろしくお願いします。
2009/07/18(土) 13:50:17
>>389
Actionにステートフルなコンポーネントをインジェクトしたいと言うこと?
それは設計としてまずいような気がするが。
391390
垢版 |
2009/07/18(土) 13:52:44
あ、マルチポストだったのか...
392389
垢版 |
2009/07/19(日) 00:30:18
389です。マルチポストしてすみませんでした。
期日が迫っている作業なのであせっていました。
どうやら変数のスコープをプロトタイプにしたところ
hashCodeが異なる値で取得出来たので問題なさそうです。
ありがとうございました。
2009/08/17(月) 17:46:52
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L

名言集 その2
『お前が規制系キャップ取れるか審査してやるよ』

http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★

> 36 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:31:30.02 ID:PVAf+dux0
> >>33
> キャップとコテハンの違いは何?

> 46 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:38:05.34 ID:PVAf+dux0
> >>45
> その回答では落ちるなw
> 答えは教えないがw

> 50 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:41:29.96 ID:PVAf+dux0
> Q.キャップとコテハンの違いは何?
> A.2ちゃんねるのボランティアの登録制度

> それがお前の答えかw

> 52 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:43:10.06 ID:PVAf+dux0
> まぁ、どうせ正解が出るわけもないし、次の問題。
> 君が思う面白いスレはどんなの?
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
2009/11/29(日) 18:23:57
2009年に入ってからの過疎進行が半端ない
2010/01/03(日) 13:48:33
>>394
おそらく、2010年も過疎進行でいくと思う。
2010/01/06(水) 04:21:39
CDIの話題も出ないなんて
2010/01/06(水) 21:20:18
GDIなら…
2010/01/07(木) 10:17:34
三菱GDIエンジン
2010/01/07(木) 22:44:22
>>396
WebBeansの頃から空気だろ
2010/01/09(土) 05:03:49
CDIは、Tomcatとか各サーバーが標準装備するようになったら他のDIコンテナいらなくなりそう。
CDIのせいで一番最初に滅びるのはEJBだが。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況