インターフェースクラスやら設定やら増えまくって
かなりめんどくなってんだけどw
探検
【Java】DIコンテナって本当に便利か?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2008/08/20(水) 23:23:26353デフォルトの名無しさん
2009/04/19(日) 18:20:24 こやつめw
354デフォルトの名無しさん
2009/05/17(日) 14:07:47 >>352
オヤスミ…
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
オヤスミ…
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
355デフォルトの名無しさん
2009/05/17(日) 20:35:36 開発が減ったのか
ものすごい過疎っぷりだな
ものすごい過疎っぷりだな
356デフォルトの名無しさん
2009/05/19(火) 18:08:08 >>354
Z
z
z
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
Z
z
z
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
357デフォルトの名無しさん
2009/06/10(水) 18:10:00 話すことがないんだなぁ
やっぱり製品作ってなんぼだな
やっぱり製品作ってなんぼだな
358デフォルトの名無しさん
2009/06/11(木) 08:51:30 もうDIコンテナは当たり前になって、便利かどうかという話ではなくなってるからな。
359デフォルトの名無しさん
2009/06/13(土) 04:22:18 前にDIコンテナ使ってないプロジェクトで、開発用DBのトリガの引数が変更されて
本番DBとズレが生じて、仕方なく設定ファイルで読み込むクラスが変わるような
仕組みを作ったけど、常に必要ってわけじゃないな。
DIコンテナが喜ばれてるのはDI以外の部分だよね?
インスタンス管理とかトランザクション管理とか。
本番DBとズレが生じて、仕方なく設定ファイルで読み込むクラスが変わるような
仕組みを作ったけど、常に必要ってわけじゃないな。
DIコンテナが喜ばれてるのはDI以外の部分だよね?
インスタンス管理とかトランザクション管理とか。
360デフォルトの名無しさん
2009/06/13(土) 04:26:54 DI以外の部分がDIに立脚してる件
361デフォルトの名無しさん
2009/06/15(月) 02:15:29 まあそうだけどさ
362デフォルトの名無しさん
2009/07/17(金) 02:07:27 結局、結論として、使った方がいいんですか?
使わない方がいいんですか?
そこんとこ教えて下さい。
使わない方がいいんですか?
そこんとこ教えて下さい。
363デフォルトの名無しさん
2009/07/17(金) 02:17:18 てめぇ、Springスレにも書き込んだ奴だな!
364デフォルトの名無しさん
2009/07/17(金) 02:23:18 はい、そうなんです。
流行ってるのはなんとなく分かるんですが、色んなサイト見ても何が
いいんだかさっぱり分からないんですよ。
フレームワークを使う事が目的になってる気がしてなりません。
それ以上の価値は、一体どこにあるんでしょう??
流行ってるのはなんとなく分かるんですが、色んなサイト見ても何が
いいんだかさっぱり分からないんですよ。
フレームワークを使う事が目的になってる気がしてなりません。
それ以上の価値は、一体どこにあるんでしょう??
365デフォルトの名無しさん
2009/07/17(金) 02:28:09 >>364
お前みたいな屑を兵隊として使えるようになると分かる
お前みたいな屑を兵隊として使えるようになると分かる
366デフォルトの名無しさん
2009/07/17(金) 03:55:48 あはは(笑)
まあそれは俺を使ってみてから言ってください(笑)
で、何がよくなるんですか?
まあそれは俺を使ってみてから言ってください(笑)
で、何がよくなるんですか?
367デフォルトの名無しさん
2009/07/17(金) 04:38:35 >>366
使えるかどうか判断してやるからスペック晒してみろ
使えるかどうか判断してやるからスペック晒してみろ
368デフォルトの名無しさん
2009/07/17(金) 05:52:51369デフォルトの名無しさん
2009/07/17(金) 06:28:27 俺より背が高いから却下
370デフォルトの名無しさん
2009/07/17(金) 12:18:41 165cm/45kgでCカップってありえないと思う…
371デフォルトの名無しさん
2009/07/17(金) 12:42:09 >>367
まぁスペックなんて晒しても無駄ですよ。
そんなもん所詮こけ脅しにしかならないし。
実力とか応用力とか本当に使えるかどうかなんて実際に
仕事やらしてみるしかないんすよ。
人事なんてそんなもんだと思ってます。
まぁスペックなんて晒しても無駄ですよ。
そんなもん所詮こけ脅しにしかならないし。
実力とか応用力とか本当に使えるかどうかなんて実際に
仕事やらしてみるしかないんすよ。
人事なんてそんなもんだと思ってます。
372デフォルトの名無しさん
2009/07/17(金) 12:48:58 必要ないなら使うな。お前みたいな屑がblogでspringって
何するもん? 使う必要あんの? フレームワークを使うことが
目的になってない? とか訳分からんチラ裏ばっか書くから
google先生がゴミばっか拾って汚染されていく。
何するもん? 使う必要あんの? フレームワークを使うことが
目的になってない? とか訳分からんチラ裏ばっか書くから
google先生がゴミばっか拾って汚染されていく。
373デフォルトの名無しさん
2009/07/17(金) 13:05:42 そんなもん書いてねーっすよ(笑)
必要ないなら使わないのは当然ですが、必要性をお教え頂きたいのです。
依存性の注入とか言いますが、結局は設定ファイルを簡単に読み込む
ためのものなんですか?
それを単純に文字列の値からオブジェクトにまでしたもの??
必要ないなら使わないのは当然ですが、必要性をお教え頂きたいのです。
依存性の注入とか言いますが、結局は設定ファイルを簡単に読み込む
ためのものなんですか?
それを単純に文字列の値からオブジェクトにまでしたもの??
374デフォルトの名無しさん
2009/07/17(金) 14:07:17375デフォルトの名無しさん
2009/07/17(金) 14:21:13 やだぴょーん(笑)
DI にこだわる意味を教えてもらうまではいるぴょーん
DI にこだわる意味を教えてもらうまではいるぴょーん
376デフォルトの名無しさん
2009/07/17(金) 14:23:29 ああもう夏休みか
ヌルーの季節ですな
ヌルーの季節ですな
377デフォルトの名無しさん
2009/07/17(金) 14:27:05 誰もこだわってないだろ。便利だから使ってるだけ。
何が便利かは人によって違う。
スパコンの計算能力が不要な人にスパコンの価値は理解できない。
DIも同じ。HelloWorldしか作ってないやつにDIの価値は理解できない。
何が便利かは人によって違う。
スパコンの計算能力が不要な人にスパコンの価値は理解できない。
DIも同じ。HelloWorldしか作ってないやつにDIの価値は理解できない。
378デフォルトの名無しさん
2009/07/17(金) 14:45:19 >>377
いや…なんて言うんですかね、つまり、特定の状況では DI コンテナ
なしで開発するよりも DI コンテナありで開発した方が効率がいいと
皆さん考えている訳ですよね?
その状況を知りたいのです。
どういう時ですか?? もうプロジェクト全部?文句なしで?
だったら、次のプロジェクトで試しに使ってみようと思ってます。
いや…なんて言うんですかね、つまり、特定の状況では DI コンテナ
なしで開発するよりも DI コンテナありで開発した方が効率がいいと
皆さん考えている訳ですよね?
その状況を知りたいのです。
どういう時ですか?? もうプロジェクト全部?文句なしで?
だったら、次のプロジェクトで試しに使ってみようと思ってます。
379デフォルトの名無しさん
2009/07/17(金) 15:03:10 横から口を挟むが、DIそのものが便利かっていうと単体テストの時の
クラス入れ替えが便利になる程度。真正面からDIを勉強するとそういう説明ばっかで
あまりメリットが見えてこない。
みんなが便利に使ってるのはDIコンテナが持ってる機能で、例えばオブジェクトを
インジェクトするときにちょこっと書き換えてAOPでトランザクション管理やらせたり、
インスタンスの生成管理をコンテナにさせてソースの記述量が減ったり、そういうこと。
クラス入れ替えが便利になる程度。真正面からDIを勉強するとそういう説明ばっかで
あまりメリットが見えてこない。
みんなが便利に使ってるのはDIコンテナが持ってる機能で、例えばオブジェクトを
インジェクトするときにちょこっと書き換えてAOPでトランザクション管理やらせたり、
インスタンスの生成管理をコンテナにさせてソースの記述量が減ったり、そういうこと。
380デフォルトの名無しさん
2009/07/17(金) 20:58:42 目的がない奴が使っても意味ない
マネジメントできずに下手なPGになんでもインジェクションされて終わり
マネジメントできずに下手なPGになんでもインジェクションされて終わり
381デフォルトの名無しさん
2009/07/17(金) 22:12:14 DIコンテナのデスクトップ番のようなものってありますか?
382デフォルトの名無しさん
2009/07/17(金) 22:50:45 springもseasarもデスクトップで使えるだろ。
guiceくらいが一番バランスいいかもしれんが。
guiceくらいが一番バランスいいかもしれんが。
383デフォルトの名無しさん
2009/07/18(土) 00:01:22384デフォルトの名無しさん
2009/07/18(土) 00:35:27 DIコンテナの利点が分からないってことは、利用しても使いこなせないって事。
だから、使わないほうがいいと思うよ。
だから、使わないほうがいいと思うよ。
385デフォルトの名無しさん
2009/07/18(土) 00:56:15386デフォルトの名無しさん
2009/07/18(土) 01:22:32 馬鹿のまわりが恩恵に預かるのでは・・・
387デフォルトの名無しさん
2009/07/18(土) 01:41:45 どんなFWであっても、馬鹿がFWの上に乗っかって作業すると、平気でFWを無視し続けてグダグダになる法則。
388デフォルトの名無しさん
2009/07/18(土) 02:38:43 DIコンテナはフレームワークじゃない。その上でフレームワークを構築するんだよ。
389デフォルトの名無しさん
2009/07/18(土) 04:04:54 struts1.3 + spring2.5でdelegatingactionproxyで連携
しようと思っています。
この場合、DIするためにActionクラスにインスタンス変数を
持たなければならないのですが、この変数はスレッドセーフで
動作するのでしょうか?
しないならば、どのような解決策が考えられるでしょうか?
どなたかお知恵のある方、ご解答よろしくお願いします。
しようと思っています。
この場合、DIするためにActionクラスにインスタンス変数を
持たなければならないのですが、この変数はスレッドセーフで
動作するのでしょうか?
しないならば、どのような解決策が考えられるでしょうか?
どなたかお知恵のある方、ご解答よろしくお願いします。
390デフォルトの名無しさん
2009/07/18(土) 13:50:17391390
2009/07/18(土) 13:52:44 あ、マルチポストだったのか...
392389
2009/07/19(日) 00:30:18 389です。マルチポストしてすみませんでした。
期日が迫っている作業なのであせっていました。
どうやら変数のスコープをプロトタイプにしたところ
hashCodeが異なる値で取得出来たので問題なさそうです。
ありがとうございました。
期日が迫っている作業なのであせっていました。
どうやら変数のスコープをプロトタイプにしたところ
hashCodeが異なる値で取得出来たので問題なさそうです。
ありがとうございました。
自動焼人 ★ = 自動保守 ◆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/
にて自動焼人 ★までご連絡ください
名言集 その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/
にて自動焼人 ★までご連絡ください
394デフォルトの名無しさん
2009/11/29(日) 18:23:57 2009年に入ってからの過疎進行が半端ない
395デフォルトの名無しさん
2010/01/03(日) 13:48:33 >>394
おそらく、2010年も過疎進行でいくと思う。
おそらく、2010年も過疎進行でいくと思う。
396デフォルトの名無しさん
2010/01/06(水) 04:21:39 CDIの話題も出ないなんて
397デフォルトの名無しさん
2010/01/06(水) 21:20:18 GDIなら…
398デフォルトの名無しさん
2010/01/07(木) 10:17:34 三菱GDIエンジン
399デフォルトの名無しさん
2010/01/07(木) 22:44:22 >>396
WebBeansの頃から空気だろ
WebBeansの頃から空気だろ
400デフォルトの名無しさん
2010/01/09(土) 05:03:49 CDIは、Tomcatとか各サーバーが標準装備するようになったら他のDIコンテナいらなくなりそう。
CDIのせいで一番最初に滅びるのはEJBだが。
CDIのせいで一番最初に滅びるのはEJBだが。
401デフォルトの名無しさん
2010/01/09(土) 08:54:16 @TransactionAttributeはjavax.ejbだから滅びないよ
402デフォルトの名無しさん
2010/01/09(土) 13:53:11403デフォルトの名無しさん
2010/01/09(土) 14:42:50404デフォルトの名無しさん
2010/01/09(土) 15:33:46 SpringもGuiceもSeasar2も標準装備はしてないよね?
405デフォルトの名無しさん
2010/01/09(土) 15:47:34 後発が同じ条件で流行ると思ってるのか?
EJB3だって流行ってないだろ?3.1だって流行らないよ
理由なきJavaEEアレルギーはまだまだ根強い
EJB3だって流行ってないだろ?3.1だって流行らないよ
理由なきJavaEEアレルギーはまだまだ根強い
406デフォルトの名無しさん
2010/01/09(土) 16:01:54 EJBはサーブレットコンテナだけで動かないでしょ
407デフォルトの名無しさん
2010/01/09(土) 16:11:06 OpenEJB突っ込めば動く
408デフォルトの名無しさん
2010/01/17(日) 11:42:25 CDI手軽すぎ。でもトータルで見るとSeasarが勝る。
409デフォルトの名無しさん
2010/01/18(月) 06:45:59 学習コストでまける
410デフォルトの名無しさん
2010/01/19(火) 17:07:41 FFY最強!
411デフォルトの名無しさん
2010/10/04(月) 04:35:34 EE6でJavaは完成された感がある。
気に入らない人はまだまだ居そうだけど。
気に入らない人はまだまだ居そうだけど。
412ななし。
2011/07/27(水) 19:32:41.18 カ オ ス ラ ウ ン ジ ゆ る せ な ぁ い ー
413デフォルトの名無しさん
2011/10/26(水) 20:17:30.57 仕様と実装を切り離す
414デフォルトの名無しさん
2012/01/02(月) 07:03:20.58 DIコンテナって2種類に分類されると思うんだ。以下あってる?
1. 型(inteface)に対するIOC(Guice)
2. 保有クラスに対するIOC(Spring)
(1)はinterfaceの保有クラスを区別せず1種類の実装が提供される。
(2)はinterfaceの保有クラスによって実装クラスが違う可能性がある。
1. 型(inteface)に対するIOC(Guice)
2. 保有クラスに対するIOC(Spring)
(1)はinterfaceの保有クラスを区別せず1種類の実装が提供される。
(2)はinterfaceの保有クラスによって実装クラスが違う可能性がある。
415デフォルトの名無しさん
2012/01/02(月) 07:11:26.86 たとえば以下のような例の場合、
Guice系の場合にはインターフェースに対する実装の提供を1つだけ書いて
全てのIServiceに同じ実装が渡される。
Spring系の場合にはインターフェースに対する実装の提供を
コンテナからHogeを生成した場合、Mogeを、Kogeを生成した場合と3種書いて
保有クラス(Hoge,Moge,Koge)によってIServiceに違う実装が渡される。
class Hoge {
IService service;
}
class Moge {
IService service;
}
class Koge {
IService service;
}
Guice系の場合にはインターフェースに対する実装の提供を1つだけ書いて
全てのIServiceに同じ実装が渡される。
Spring系の場合にはインターフェースに対する実装の提供を
コンテナからHogeを生成した場合、Mogeを、Kogeを生成した場合と3種書いて
保有クラス(Hoge,Moge,Koge)によってIServiceに違う実装が渡される。
class Hoge {
IService service;
}
class Moge {
IService service;
}
class Koge {
IService service;
}
416デフォルトの名無しさん
2012/01/02(月) 10:23:11.80 意味がよくわからん
guiceはintefaceと実装が一対一の関係「専用」のDIであるということを言ってる?
そういう意味なら違う
その場合は実装をアノテーションで指示するようになってる
guiceはintefaceと実装が一対一の関係「専用」のDIであるということを言ってる?
そういう意味なら違う
その場合は実装をアノテーションで指示するようになってる
417デフォルトの名無しさん
2012/01/02(月) 13:10:41.09 >>416
>guiceはintefaceと実装が一対一の関係「専用」のDIであるということを言ってる?
うん、そういうこと。@Namedを使う抜け穴があるけど、それはguice系DIの思想的に
望ましくないと思うんだ。
intefaceと実装が一対一の関係だから実装を変更するときは
アプリケーション中でそのinterfaceに対する実装が一括で変更される。
そんなinterface単位の一括管理がguice系の方向性だと思うんだ。
>guiceはintefaceと実装が一対一の関係「専用」のDIであるということを言ってる?
うん、そういうこと。@Namedを使う抜け穴があるけど、それはguice系DIの思想的に
望ましくないと思うんだ。
intefaceと実装が一対一の関係だから実装を変更するときは
アプリケーション中でそのinterfaceに対する実装が一括で変更される。
そんなinterface単位の一括管理がguice系の方向性だと思うんだ。
418デフォルトの名無しさん
2012/01/02(月) 13:15:58.26419デフォルトの名無しさん
2012/01/02(月) 13:23:52.18 続き
対してspringなどはinterfaceを使っているクラス単位で管理すると思うんだ。
例えば実装クラスを入れ替える場合、interfaceをフィールドに持っていたり
使っているクラス(bean)毎に設定を変更する。
抜け穴があるにしろ、基本的にDI箇所が増えるほど
設定が増える代わりに1つ1つ細かく指定できるのが利用クラス(bean)単位のDI
対してspringなどはinterfaceを使っているクラス単位で管理すると思うんだ。
例えば実装クラスを入れ替える場合、interfaceをフィールドに持っていたり
使っているクラス(bean)毎に設定を変更する。
抜け穴があるにしろ、基本的にDI箇所が増えるほど
設定が増える代わりに1つ1つ細かく指定できるのが利用クラス(bean)単位のDI
420デフォルトの名無しさん
2012/01/02(月) 13:31:53.96 >>418
説明がよくなかったかな。。。
例えばモックから完成クラスへ入れ替える、
あるいはMySQLからOracleDBに入れ替えるような、
そのインターフェースに対してアプリケーション中が一気に入れ替える
リソースの変更的な入れ替えのためにはGuiceは向いてるけど、
Buttonインターフェースに対してGreenButton, RedButtton, BlueButton
どれかを生成するストラテジーパターンみたいなものには向いていなくて、
仮にそれをするならわざわざIGreenButton, IRedButton, IBlueButtonみたいに
別々のインターフェースを作るのがGuice系の正しい使い方なんじゃないかな?
説明がよくなかったかな。。。
例えばモックから完成クラスへ入れ替える、
あるいはMySQLからOracleDBに入れ替えるような、
そのインターフェースに対してアプリケーション中が一気に入れ替える
リソースの変更的な入れ替えのためにはGuiceは向いてるけど、
Buttonインターフェースに対してGreenButton, RedButtton, BlueButton
どれかを生成するストラテジーパターンみたいなものには向いていなくて、
仮にそれをするならわざわざIGreenButton, IRedButton, IBlueButtonみたいに
別々のインターフェースを作るのがGuice系の正しい使い方なんじゃないかな?
421デフォルトの名無しさん
2012/01/02(月) 13:37:47.57 >>420
いやーアノテーションでやるでしょそれは
IGreenButton等々はかなりまずいスタイルだよね・・・
インターフェイスに対してプログラミングするスタイルを完全にスポイルしちゃう
springはよく知らないけど、
あるinterfaceに対するデフォルトのバインディングを指定することもできないの?
いやーアノテーションでやるでしょそれは
IGreenButton等々はかなりまずいスタイルだよね・・・
インターフェイスに対してプログラミングするスタイルを完全にスポイルしちゃう
springはよく知らないけど、
あるinterfaceに対するデフォルトのバインディングを指定することもできないの?
422デフォルトの名無しさん
2012/01/02(月) 13:48:16.33 すると単なるIoCのFactoryクラス、つまりinterfaceなんか別に必須ではなくて
注入される側のクラスから見えないだけのFactoryクラスとして側面をもつのが
spring系DIで、
interface必須でinterfaceによる固い設計、実装クラス一括管理が
guice系DIの特徴に見えると思います。
注入される側のクラスから見えないだけのFactoryクラスとして側面をもつのが
spring系DIで、
interface必須でinterfaceによる固い設計、実装クラス一括管理が
guice系DIの特徴に見えると思います。
423デフォルトの名無しさん
2012/01/02(月) 13:59:52.82 >あるinterfaceに対するデフォルトのバインディングを指定すること
Guiceにとってはこちらが「基本」ですが、
Springにとっては「そういうのもできる」という立場ではないかと。
逆にGuiceで@Namedを使うようなパターンに対しては
Springにとってはこちらが「基本」ですが、
Guiceにとっては「そういうのもできる」という立場ではないでしょうか。
Guiceにとってはこちらが「基本」ですが、
Springにとっては「そういうのもできる」という立場ではないかと。
逆にGuiceで@Namedを使うようなパターンに対しては
Springにとってはこちらが「基本」ですが、
Guiceにとっては「そういうのもできる」という立場ではないでしょうか。
424デフォルトの名無しさん
2012/01/03(火) 10:54:33.00 DIはユニットテストのモック差し替えぐらいにしか使えないという記事を読んで、
やはりそういう用途にDIの概念が特化するならば、Guiceの@Namedみたいなiocコンテナ
の使い方はDIとは別の概念として切り分けられるべきではないかなと思た。
やはりそういう用途にDIの概念が特化するならば、Guiceの@Namedみたいなiocコンテナ
の使い方はDIとは別の概念として切り分けられるべきではないかなと思た。
425デフォルトの名無しさん
2012/01/03(火) 13:32:47.27 DIよりもAOPがメインだよな
DIコンテナの用途って
DIコンテナの用途って
426デフォルトの名無しさん
2012/01/03(火) 16:35:15.29 DIの方がメインでは?
427デフォルトの名無しさん
2012/01/03(火) 23:14:35.03 俺もあくまでDIの方がメインだと思う。
428デフォルトの名無しさん
2012/01/04(水) 08:38:37.47 実装の切り離し以外の役割を背負いすぎてるのが
学習時の混乱をもたらしてると思う
DIコンテナっぽいものをJavassistの練習で作ろうとしたところ
DIってどうあるべきだ?と考え出したところで停滞してしまったw
学習時の混乱をもたらしてると思う
DIコンテナっぽいものをJavassistの練習で作ろうとしたところ
DIってどうあるべきだ?と考え出したところで停滞してしまったw
429デフォルトの名無しさん
2012/01/22(日) 19:01:48.77 やっぱDIコンテナ使う人って、とりあえずなんかクラス作るときは
例外なしにインタフェースかぶせとくもんなの?
今のプロジェクトはそうなってるけど、ユニットテストもないし
実装もすべて一個なんだから、もう密結合でもよくね?って気がすごくしてるんだけど
例外なしにインタフェースかぶせとくもんなの?
今のプロジェクトはそうなってるけど、ユニットテストもないし
実装もすべて一個なんだから、もう密結合でもよくね?って気がすごくしてるんだけど
430デフォルトの名無しさん
2012/01/22(日) 19:38:29.82 そりゃ、ただの思い込みor実装上(AOPの方式とか)の制約じゃねーの?
俺は本当にプロバイダーモデルが必要な所しかInterfaceの分離はしないし、
テストに関しては黒魔術で対応してる。
俺は本当にプロバイダーモデルが必要な所しかInterfaceの分離はしないし、
テストに関しては黒魔術で対応してる。
431デフォルトの名無しさん
2012/01/23(月) 14:44:29.86 >>429
自分はいわゆるコントローラ(サービス)クラスとかDaoクラスであれば、
最初は実装クラスが1つしかなくても、例外なくインターフェースかぶせておくようにしている。
あとから、実装クラスを変えたくなった時や複数のバリエーションの実装クラスを作りたくなったとき、
context.xml で切り替えるだけで、プログラムを修正しないですむので、
プロジェクトの終盤で大きな変更を加えなければならなくなったときに、だいぶ助かったことがある。
例:
たとえば Dao で、インターフェース FooDao があったとして、
最初は iBatis で作っていたが(FooDaoIbatisImpl)、
一部独自に実装したくなった時は、FooDaoHogeImpl というように、FooDao を使った
別の実装クラスを作る。
context.xml で、bean id="fooDao" class=".." のところを FooDaoHogeImpl に変更すればいいので、
サービスオブジェクト側からは、変更を気にしなくて済む。
これでパフォーマンスチューニングをやったり、Dao の取得先を RDB から KVS とかに切り替えたりした。
自分はいわゆるコントローラ(サービス)クラスとかDaoクラスであれば、
最初は実装クラスが1つしかなくても、例外なくインターフェースかぶせておくようにしている。
あとから、実装クラスを変えたくなった時や複数のバリエーションの実装クラスを作りたくなったとき、
context.xml で切り替えるだけで、プログラムを修正しないですむので、
プロジェクトの終盤で大きな変更を加えなければならなくなったときに、だいぶ助かったことがある。
例:
たとえば Dao で、インターフェース FooDao があったとして、
最初は iBatis で作っていたが(FooDaoIbatisImpl)、
一部独自に実装したくなった時は、FooDaoHogeImpl というように、FooDao を使った
別の実装クラスを作る。
context.xml で、bean id="fooDao" class=".." のところを FooDaoHogeImpl に変更すればいいので、
サービスオブジェクト側からは、変更を気にしなくて済む。
これでパフォーマンスチューニングをやったり、Dao の取得先を RDB から KVS とかに切り替えたりした。
432デフォルトの名無しさん
2012/01/24(火) 19:58:47.06 >やっぱDIコンテナ使う人って、とりあえずなんかクラス作るときは
>例外なしにインタフェースかぶせとくもんなの?
そうしてもいいぐらい粒の大きいクラスにしかDIしないこと
>例外なしにインタフェースかぶせとくもんなの?
そうしてもいいぐらい粒の大きいクラスにしかDIしないこと
433デフォルトの名無しさん
2012/01/25(水) 19:44:03.96 何十とあるControllerやService、Daoに対して、例外無しに全てIFを用意するのか?、っとい疑問が生まれること自体は、まあ普通だと思う。
434デフォルトの名無しさん
2012/02/16(木) 17:08:25.22 必要なところをinterfaceに変えるのって手間掛かるか?
IDEのリファクタリング機能とか、無くても一旦コンパイルエラーにして
置換掛けていけばいいだけだし
必要になってからinterfaceにしても別によくね
IDEのリファクタリング機能とか、無くても一旦コンパイルエラーにして
置換掛けていけばいいだけだし
必要になってからinterfaceにしても別によくね
435デフォルトの名無しさん
2012/02/17(金) 10:16:39.50 DIの利点ってやっぱテスト部分なのかね
436デフォルトの名無しさん
2012/02/17(金) 20:52:25.87 インジェクション設定が増えすぎるアンチパターンを懸念すると
テストの設計とDIでセットにするのが良いかもしれん
テストの設計とDIでセットにするのが良いかもしれん
437デフォルトの名無しさん
2012/02/23(木) 01:44:38.83 interfaceを書きながら設計していく感じが多いかな
implするクラスも同時に書いていくと、設計が終わる頃にはスケルトン+モックにもなるクラスができてる
implするクラスも同時に書いていくと、設計が終わる頃にはスケルトン+モックにもなるクラスができてる
438デフォルトの名無しさん
2012/02/23(木) 13:50:41.31 >何十とあるControllerやService、Daoに対して
なんで一対一でinterface用意する必要があるの…?
根本的にわかってないとしか言いようがない
なんで一対一でinterface用意する必要があるの…?
根本的にわかってないとしか言いようがない
439デフォルトの名無しさん
2012/02/23(木) 21:53:45.88 一対一にしないならDIやる意味なくない?
440デフォルトの名無しさん
2012/02/23(木) 22:21:45.78 インターフェイスをDIのタグとして使ってるってことかw
441デフォルトの名無しさん
2012/02/24(金) 18:50:12.83 DIって言葉も、なんかMVCと同じでぼくの使ってる最強のDIみたいなのが十人十色で意思疎通難しいし
もうNGワードにしたほうがいいんじゃないか
もうNGワードにしたほうがいいんじゃないか
442431
2012/02/26(日) 21:41:06.65 >>439
開発当初は1対1しかないかもしれないけど、
あとから増える場合もあるので、そういった時には、インターフェースと実装クラスを分けておいてよかったと思うよ。
まぁ、これから作ろうとしているシステムが、使い捨て(寿命が短い)であまり変更を考慮しなくていい場合と、
ある程度長くなりそうな場合とで、手間とのトレードオフもあると思うけど。
開発当初は1対1しかないかもしれないけど、
あとから増える場合もあるので、そういった時には、インターフェースと実装クラスを分けておいてよかったと思うよ。
まぁ、これから作ろうとしているシステムが、使い捨て(寿命が短い)であまり変更を考慮しなくていい場合と、
ある程度長くなりそうな場合とで、手間とのトレードオフもあると思うけど。
443デフォルトの名無しさん
2012/02/26(日) 21:53:56.03 流れを誤読しとる?
444デフォルトの名無しさん
2012/02/26(日) 22:05:10.19 >>442
使い捨てがどうのともっともらしいことを言っているけど、
単に実装をIFを分離すべきポイントをちゃんと設計出来る能力が無いから
とりあえずなんでも分離しておく、っと言っているようにしか聞こえない。
そんなんで良いのか?
使い捨てがどうのともっともらしいことを言っているけど、
単に実装をIFを分離すべきポイントをちゃんと設計出来る能力が無いから
とりあえずなんでも分離しておく、っと言っているようにしか聞こえない。
そんなんで良いのか?
445デフォルトの名無しさん
2012/02/27(月) 08:57:55.64 DIのために一対一にするくらいならクラスを指定してDIすればいいだろってこと
446431
2012/02/27(月) 15:49:00.65 >>444
そう言われると反論できない。
突貫工事が多いから、とりあえず *Dao と *Service は
インターフェースと実装クラスに分けとけ、というルールを決めて、
開発に着手していたことは多かったな。
いちいち
・こういうケースは分離しましょう
・こういうケースは分離しなくていいです
というルールを考えている余裕がなかったので。
そう言われると反論できない。
突貫工事が多いから、とりあえず *Dao と *Service は
インターフェースと実装クラスに分けとけ、というルールを決めて、
開発に着手していたことは多かったな。
いちいち
・こういうケースは分離しましょう
・こういうケースは分離しなくていいです
というルールを考えている余裕がなかったので。
447デフォルトの名無しさん
2012/02/27(月) 16:39:07.27 そういう機械的な設計でいいと思うけどね。
堅実というか無難というか。
堅実というか無難というか。
448デフォルトの名無しさん
2012/02/27(月) 19:59:53.91 実装クラスでメソッド追加した際に
インターフェイス側に宣言コピペするだけだしな
ファイル分けるもの面倒臭い
public interface A {
void f();
public static class Imp implements A {
public void f(){}
}
}
インターフェイス側に宣言コピペするだけだしな
ファイル分けるもの面倒臭い
public interface A {
void f();
public static class Imp implements A {
public void f(){}
}
}
449デフォルトの名無しさん
2012/02/27(月) 23:02:03.47 なんかよくわからんなー
DIとなんの関係がある話なのかすらよくわかんない
Cのプロトタイプ宣言の話聞いてるみたいだ
DIとなんの関係がある話なのかすらよくわかんない
Cのプロトタイプ宣言の話聞いてるみたいだ
450デフォルトの名無しさん
2012/02/27(月) 23:09:58.39 DIで注入される側
FooServiceImplならFooService型の定義になってて
BarServiceImplならBarService型の定義…みたいなことやってるってこと言ってるの?
FooServiceImplならFooService型の定義になってて
BarServiceImplならBarService型の定義…みたいなことやってるってこと言ってるの?
451デフォルトの名無しさん
2012/02/27(月) 23:15:39.88 いや例がよくないwごめん
452デフォルトの名無しさん
2012/02/27(月) 23:18:58.00 もうDaoでインターフェイスを分離する意味ないだろ
昔ならモックに差し替えるのに必要だったが
昔ならモックに差し替えるのに必要だったが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 [少考さん★]
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 ★2 [ぐれ★]
- “ひとり焼肉”でおなじみ「焼肉ライク」が閉店ラッシュ。なぜ「コスパが悪い」と言われてしまうのか [Gecko★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- なぜ安っぽく見えてしまうのか…? ダウンジャケット姿が垢抜けない人の"意外な盲点" (ビジネスマンのためのスタイリスト) [少考さん★]
- 【日中】経団連会長、1月の北京訪問に暗雲 中国は受け入れ是非明らかにせず 関係「政冷経冷」に [煮卵★]
- 「SCORE」←これなんて読むんや?🙋🏡
- 【高市朗報】鈴木大臣「嫌儲のデマに騙されないで。お米券の使い勝手は悪くない。卵味噌醤油も買えます。現金と変わりません」 [517459952]
- iPhone高騰する説、デマだった!ハードからOSまで全てAppleが作るからメモリも自給自足、iOSはメモリ少なくて良いから128MBぐらいでOK [749674962]
- 🏡おい!返事しろ︎︎!知的障害者!
- 【悲報】ワンピースの尾田栄一郎の描く女が気持ち悪過ぎると大炎上中wwwwwwwwwwwwwwwwwwww [802034645]
- 【悲報】東京40代「生活苦しい!戸建てなんて絶対無理…」地方20代「家と車買って子供できた~今日は家族でモールで買い物」 [732289945]
