【最速】google guice DI Framework【シンプル】
1 :
デフォルトの名無しさん:
鼬害
これなんて読むんだ?
juice→ジュースだから
グース?
pronounced 'juice'
って書いてあるじゃん。
ってかまたDIか。本気でDIいけてると思ってる奴どんだけ
いんのよ?流行で触ってみた、使ってみたじゃなくてさ。
心底、これはスゲーって思ってる奴いる?
DIなんてJavaが駄目言語であるがゆえに存在するものだからなあ
DIいけてないって思うヤツに
プログラムを書かせてはいけない
>>4 普通に100人規模の開発で使ってるんだが。。
>>4 DI無しでの単体テストなんてもう考えられないな。
DIは単体テストの為にあるって言ってもいいかも。
>>6 書き方が悪かったな。
DIいけてると判断して使ってる奴がどれだけいますかー?
DIいけてないと判断して使ってない奴がどれだけいますかー?
って事だけ。流行に躍らされてないで、DI理解して
DIDIって言ってる奴が何割いるのかと。
>>9 DIはいけてるが既存のフレームワークは最悪。
guiceはちょっとましになったかなという程度か。
DIなんて聞いたこともないわけだが。
まったく次から次へと焼き畑農業のようにゴミライブラリ撒き散らして悦に入っている
Java厨は本当に度し難いな。
まぁC/C++何ぞでは、FW作る意味すらないからな
リフレクションが使いにくい言語にはDI適用は困難
ダックタイピングが有る言語にはDIは不要
DIってDLLみたいなもんだろ。
デバッグ情報含んだDLLをデバッガで動き見て
リリースモードのDLLにして納品みたいな。
>>14 違う予感
え、そうなの?
不安になってきた。
国際化対応もDLLにリソースぶち込んで、ロケール見て切り替えってのもそう?
なんだよDLLって
Windows厨はでてけよ
soもDLLっていうが
EJBが糞過ぎてそれをどうにか他環境並みの疎結合に引き上げてくれる夢の新技術がDIってことか
ナニこのスレ
DIわからん香具師は出てけ
>>14 DLLて。。
勘違いにも程があるな。少なくともぐぐってから書き込め
大して違わないことに気づいても無い奴よりマシだと思う
しかし徹頭徹尾無内容なスレだな。
DIなんぞやから語る事自体は悪い流れではなかろう
問題はこの煽り合いの流れが意地の張り合いで終わるのかどうか
スレタイにDIなんて入れるから中途半端なのが入ってくるんだ。
27 :
1:2007/03/24(土) 18:48:31
>>24 そうならないように、スピード比較結果を貼ってみる
1回目
Spring: 1,734 creations/s
Guice: 35,161 creations/s
S2: 18,395 creations/s
2回目
Spring: 1,776 creations/s
Guice: 37,202 creations/s
S2: 19,394 creations/s
3回目
Spring: 1,783 creations/s
Guice: 36,764 creations/s
S2: 19,164 creations/s
数字大きい方が速いって事で。
http://d.hatena.ne.jp/arumani/20070315/p2 スレの内容見るとこのネタじゃ盛り上がらなさそうだけど(´・ω・`)
軽量で高速なDIコンテナは需要あるんじゃない?
うちじゃSpring使ってるけど、サーバ起動時の待ち時間は異常
つーかDLLとDIを同じ基準で比較するバカどもウゼー
バインディングをコード書いてやらなあかんのがなー
Springで定義したのをGuiceで運用するってのがいいのかなーw
31 :
1:2007/03/24(土) 19:28:30
>>28 個人的には、DI定義XMLが無い所がかなり気に入ってる。
リファクタリング手軽に出来るしね。
jarを(dll)をどうロードするかでしかないんだから
こんなものありがたがってる奴らはドカタだわな
>>34 むかしはファクトリのコードを手で書いてたんだから、かかなくて良くなりゃ
それに越したことはないと思うんだけど。
だが、バインディングコードを書く時点で「コードを書く」こと自体は従来と同じ(戦略はともかく)
アノテーションのみだったらまだ違うけど
春休み明けに立てればよかったのに
ユーザガイドざーっと読んでみた。とりたてて目新しいことは無いな。
>>37 コードでもバインディングできますよ、ってだけで基本アノテーションのみ
じゃないの?
まったくだな、
>>38みたいな盲目な人間が消えてくれる
ソースをざーっと読んでみた。とりたてて目新しいことは無いな。。
googleは何でこれ作ろうと思ったんだ??
作ったアプリの中からスピンオフしただけだろ
企業発のコードなんざ大抵そうだ
へー、そういうものなのね。
44 :
1:2007/03/24(土) 20:23:16
>>39 いや。バインディングのコードは必ず必要。
簡単なDIだけでいいなら不要だけど
多分それじゃもの足りんよねー
>>41 思うに、実行速度を早くしたかったのかと・・・・
Springの定義から作ったものをGuiceに上で高速に
動かしたいんじゃないの?
47 :
1:2007/03/24(土) 20:45:04
>>41 バインディングがコードで書けると
jUnitで単体テストが書けてとても嬉しいよ。
XMLの場合、結合しないとテスト出来なかったから。
オリは逆にDJUnitでコードバインディングみたいにコーディングしてダミーのクラスとか入れ込んでたけど
XMLで定義できたらなぁとか思ってたw
>>47 ん?手でmockをセットすればテストできるけど、そういう話じゃないよね?
ちら裏スマン
4月から超ファイヤープロジェクトに放り込まれそうだ。
ってか、燃えカスしか無いかも。。。
漏れは製造系の会社のIT分門で、9ヶ月前ぐらいにIT系の会社から
社内SEとして転職。で、問題のプロジェクトは工場で使う生産系の
システムを外部に請負で発注。テストもてきとうで、少し前から触るとなんか出る
って感じでやばいのがどかどか出てきた(ってか根幹の仕組み自体が破綻してるみたい)。
検収上げなきゃ良いじゃんって思ったけど、こっちの期末処理の関係で
3末で検収ださなあかんのだとwww
保守契約は無し。構築中にスキトラ受けて自分らでやる予定だったみたい。
で、どうするかなーと思い、BLだけ切り出してきてDIでくっ付けなおそうかと。
BLの部分はJavaの基礎と最低限のライブラリの知識で作れるようにして
業務を知ってる社内のエセSEをちょっと鍛えて作ってもらうと。
数億の仕組みだから1人じゃどうにもならんので、人海戦術使うならこんな感じかなと。
立て直るかはプロジェクトの進め方で7割は決まると思っていて
やり方は色々あると思う。ただ、バグを1つ1つ潰してたら、きりが無い
という噂が流れてきてるから、上記みたいな事を考えてる。
まだ自分で蓋を開けてないから変わるかもしれないけどね。
フルスクラッチするなら幾らでもやりようがあるがノー
結局そうした方がいい場合が多いんだけどねー
目先の予算やら何やらでお茶を濁すと結局は本質的な問題が
解決されずにグダグダするだけだったりして・・・
52 :
50:2007/03/24(土) 22:25:49
>目先の予算やら何やらでお茶を濁すと結局は本質的な問題が
>解決されずにグダグダするだけだったりして・・・
まったくです。でも4月からの予算枠も当然取ってないですとwwww
って事で、社内要員でなんとかするしかなさそ。
1年以上やってるプロジェクトだから、なんとか活かせる部分は
活かして短期決戦に持っていきたい。
∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵。∴∵
∴∵∴∵:。∴∵∴∵∴: --─- ∴∵∴∵∴∵∴∵
∴∵゜∴∵∴∵∴∵ (___ )(___ )
>>50∵∴∵ ゜
∴∵∴∵∴:∵∴∵_ i/ = =ヽi ∴∵∴∵。∴∵∴
∴∵☆彡∴∵∵ //[|| 」 ||] ∴:∵∴∵∴∵:∴∵
∴∵∴∵∴∵ / ヘ | | ____,ヽ | | ∴:∵∴∵∴∵:∴∵
∴゚∴∵∴∵ /ヽ ノ ヽ__./ ∴∵∴∵:∴∵∴∵
∴∵∴∵ く / 三三三∠⌒> ∴:∵∴∵:∴∵
∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∵∴∵∴∵
∧∧ ∧∧ ∧∧ ∧∧
( )ゝ ( )ゝ( )ゝ( )ゝ ムチャしやがって・・・
i⌒ / i⌒ / i⌒ / i⌒ /
三 | 三 | 三 | 三 |
∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪
三三 三三 三三 三三
54 :
>>46:2007/03/25(日) 01:53:21
全然チゴタ
コレクションへのDIとかってGuiceではどうすんかしら?
そこは直接書かないとアカンみたいな希ガス
■ Spring
<bean id="test1" class="test.Test1" singleton="true"/>
<bean id="test2" class="test.Test2" singleton="true"/>
<bean id="test3" class="test.Test3" singleton="true"/>
<bean id="testFactory" class="test.TestFactory" singleton="true">
<constructor-arg>
<map>
<entry key="test1" value-ref="test1"/>
<entry key="test2" value-ref="test2"/>
<entry key="test3" value-ref="test3"/>
</map>
</constructor-arg>
</bean>
TestFactory testTactory = (TestFactory)beanFactory.getBean("beanFactory");
Test test = testTactory.getTest(key);
test.process();
■ Guice
@Singleton
public class TestFactory{
Map<String,Test> map;
static{
Injector injector = Guice.createInjector();
map = new HashMap<String,Test>();
map.put("test1",injector.getInstance(Test1.class);
map.put("test2",injector.getInstance(Test2.class);
map.put("test3",injector.getInstance(Test3.class);
}
public TestFactory(){}
・・・
}
TestFactory testTactory = injector.getInstance(TestFactory .class);
Test test = testTactory.getTest(key);
test.process();
>>56は間違ってるけど適当に脳内補完してくださいw
58 :
1:2007/03/25(日) 17:24:04
>>56 こんな感じになる希ガス
public interface IfItems {
Map getItems();
}
public class ItemsMock implements IfItems{
public Map getItems(){
マップ作る処理
}
}
public class MyModuleMock implements Module {
public void configure(Binder binder){
binder.bind(IfItems.class).to(ItemsMock.class)
.in(Scopes.SINGLETON);
}
}
public class ItemProcessorImpl impletemts IfItemProcessor {
private IfItems mItems;
public void process(){
mItemsを使った処理
}
@Inject
void injectItems(IfItems inItems){
mItems = inItems;
}
}
Injector inj = Guice.createInjector(MyModuleMock.class);
IfItemProcessor ip= inj.getInstance(ItemProcessorImpl.class);
ip.process();
59 :
1:2007/03/25(日) 17:38:09
間違ってた
Injector inj = Guice.createInjector(MyModuleMock.class);
↓
Injector inj = Guice.createInjector(new MyModuleMock());
むむむ・・・・
ちなみにやりたいことは、
switch(key){
case 1:
// 1の時の処理
case 2:
// 2の時の処理
case 3:
// 3の時の処理
}
のような、ある条件に応じて処理が分かれるロジックを
コマンドパターンで解決しようとしているところで、
条件と処理の関連付けをDIで解決しようとする場合に
どうすりゃいいのかのー?ってことなんだなこれが
Springなら<map>でそれができるんだけど、同じことをやろうと
すると
>>56のようにマッピングは自力で書かんとイカンだろなー
っというところだがどうなんだろう?
Mapを使わなくても条件と処理の関連付けがコーディング
しなくても出来ればいいなと
で、
>>58だと、条件と処理のセット(=ItemsMock)と、
条件に応じた処理を実行するコンテキスト(=ItemProcessorImpl)の
依存関係がDIで解決されているように思うのだが、だとすると
そこは悩ましいところではないんです
違ってたらすみません。
61 :
1:2007/03/25(日) 21:58:52
>>60 なるほど。それならこれでいけるかな。
ただ、その処理やるならkeyとクラス名を紐付けといてリフレクションで呼んだ方が楽かと。。
public interface IfCommand {
public void exec();
}
public OneTimeExecCommand implements IfCommand{
public void exec(){何かの処理}
}
public TwoTimeExecCommand implements IfCommand{
public void exec(){何かの処理}
}
public class MyModule implements Module {
public void configure(Binder binder){
binder.bind(IfCommand.class).to(OneTimeExecCommand.class)
.annotatedWith(OneTimeExec.class).in(Scopes.SINGLETON)
binder.bind(IfCommand.class).to(TwoTimeExecCommand.class)
.annotatedWith(TwoTimeExec.class).in(Scopes.SINGLETON)
}
}
pulic class CommandProcessor {
private @Inject @OneTimeExec IfCommand oneTimeExec;
private @Inject @TwoTimeExec IfCommand twoTimeExec;
public process(){
switch(key){
case 1:
oneTimeExec.exec();
case 2:
tweTimeExec.exec();
}
}
むむむむむむ・・・・・
っていうか、switch文で解決しようとすると、条件が増減したりすると
ソコのコードを書き換えなきゃでしょ?
switch文を書かないようにすることが主目的なんだけどなー
条件と処理のマッピングが設定で出来れば条件の追加はコーディング不要になるでしょ
少なくともMapなどのコレクションでの解決は、コレクション要素の追加だけで
修正が出来るからいい解決方法かな?と思ってるんだけどね
Springの場合は<map>に<entry>を追加するだけでいいんだけど
Guiceは要素を追加するコードは書かなきゃならんようだなー
あと
>>60はこうでした
switch(key){
case 1:
// 1の時の処理
break;
case 2:
// 2の時の処理
break;
case 3:
// 3の時の処理
break;
}
64 :
1:2007/03/26(月) 21:27:58
>>62 あ〜ようはCommandインスタンスのMapをインジェクションしたいと。
それならProviderでラッピングしてやれば出来るけど
Springより面倒だね(´・ω・`)
よし
XML定義ファイルからModuleを自動生成して登録する拡張を作るぞ
SpringのXMLファイルをそのまま使ったらまずいかしら?
70 :
デフォルトの名無しさん:2007/03/31(土) 14:08:45
71 :
デフォルトの名無しさん:2007/03/31(土) 14:15:32
>>50 javaのお仕事ってこういうのが多いのかね?
XMLでbindの定義したのを読み込んで、Module内でバインディングしようとしたら
bindする型をはっきりさせないと遺憾からXML定義による自動バインディングは
できんかった・・・
バイトコードいじれば出来るのかしら?
しかしそれはメンドイ
やはりXMLからModeuleクラスを作るようにしよか・・・
>>72 おまいは本気でxmlで定義しようとしてるのか!?
あぁ。。4月1日か。。
バインド定義をコーディングするのはオレてきにメンドイ
>>74 なら、SpringかSeasar使えと。。
Guiceの利点はxmlを使わない所にある。
コードでバインディングめんどいかー?エディタで補完効いて快適じゃん。
コードをゴリゴリかくのメンドイし、どうバインディングされてるかわかりにくいのが良くないと思う
最終的にはExcelで定義したバインディング仕様からModuleクラスが作れればいいかなと・・・・
まぁ挫折してもエイプリルフールってことでw
>>78 10年程PGや設計やってきて出した俺的結論としては
PGのコード記述するのに、外部ファイルや自動生成系は使うなだな。
自動生成やるにしても、最初の1回だけで後は使わない。
理由は単体テストがやりにくい・リファクタリングが自動で出来ないのと、
管理がめんどいから。
自動生成で作成したJavaソースはいじらないってルール作っても、
従わないヴァカがいっぱいいるんだよ世の中。
78はまだ若そうだが、いずれ分かるようになるさ。
マダマダ若いなw
15年この業界にいてフレームワークを作り続けてきた俺の結論は
ドキュメント=実行モジュールになるのがもっとも生産性が高いってこと
幾らプログラム作ってもドキュメント化されないと保守できない
システムのメンテナンスは同じ人間がやれるわけでもないし、
新しい人間がスグに使えるようになる必要もあるのだよ
プログラマからすれば自分の作業が問題なければそれでいいカモしれんが
それじゃいかん
>>80 ま〜理想で言えばそうだが、現実は違うわなw
ドキュメント書くだけでJavaソース作ってくれる
某G○nってツール使った事あるんだが、パフォーマンス糞だったぞ?
いくら生産性高くて(特殊なツールで生産性高いとは言えなかったが。。)
シス方と開発がウハウハでもユーザー不在なのはどうかと。
ドキュメント書くのはSEの仕事だから、
PGはJavaDocさえきっちり書いとけばいいんじゃね?
ドキュメント=実行モジュールと考えるからよくない。
実行モジュール=ドキュメントと考えればいいんだ。
つまり、ソースがそのままドキュメントになる。
guiceは、メソッドがinとかtoとかになってるんだが、
英語が母国語な人にとっては、
このソースはドキュメントっぽく読めるんじゃないだろうか。
>>81 1から10までってのは難しいと思うけど、インターフェイスの部分て言うのは
わかりにくいからドキュメント化したいし、バグの温床でもあるからねぇ。
例えばエンティティクラスやStrutsのActionFormのようなデータインターフェイス
は自動生成して、データの転送はリフレクションを使ったプロパティコピー
ユーティリティのようなもの(commons-beanとか)でコードを極力書かない
ようにしたほうがバグも少ないし生産性も高い。
Guiceの場合はGuiceとアプリケーションのインターフェイスであるModule
を自動で作ったりバインドしたりする方がそのインターフェイス間での問題が
少なくなるし、どんなバインディングしてるのかが第3者にもわかりやすくなる。
>>82 Hibernateもそうだけど、
hoge.createSQLQuery(...).
.addEntity(.....)
.setString(....)
.list()
見たいな続けて書くのがはやってるね。
こういうプログラムを書のは面白いと思うけどw
>>82 ドキュメント=実行モジュールも
実行モジュール=ドキュメントも同じ意味なんぢゃ。。
ソースがそのままドキュメントになるのは同意。
ただ、実装のソースじゃなくてTDDなjUnitテストケースのソース(javaDoc付き)だが。
ちなみに、
>英語が母国語な人にとっては、
>このソースはドキュメントっぽく読めるんじゃないだろうか。
この考え方はCOBOLやSQLに取り入れられてる。
guice使えるよguice
Springは使うインターフェースがドキュメントにかかれてないとわからないけど
Guiceはモジュールを見るだけだから一目瞭然でわかりやすいな
ドキュメントが常に最新のコードをあらわしているわけではないという法則があるから
これはうれしい
88 :
デフォルトの名無しさん:2007/04/03(火) 22:58:17
ふうん
結局、俺はリファクタリングが利くのが一番いけてるところだと思うな。
XMLの書き間違い、規約の間違いみたいなものは、ビルド時に発見されるので
単純だけど問題解決に時間がかかってしまうケアレスミスみたいなのが減る。
これはプログラマの精神安定的な観点からも非常にいいことだと思う。
もっとも、リファクタリング(の自動化サポート)の価値については
Javaを使ってるさらにIDE族(多分Eclipseが最大勢力)だけしか、
価値が分かってない気がするので一般のプログラマーには
あんまりありがたみが分からないだろうなーってのも事実。
Springだとどのインターフェースでアクセスすればいいのかがわからないために
仕様書眺めて使うようなタイプになっちまう
>>89 タイプセーフってのは大きいよ
コンパイルが通るだけでもモジュール定義とか失敗してないのがわかるわけで
IDEのサポートがないならなおさら重要
あと実装ベースでDIする場合モジュール定義がいらないので手軽な疎結合にも十分な価値がある
おもにJavaSE側でGUIクライアント側で使う場合や小規模実装にすばらしく重要
>>89 だな。コンパイラがチェックしてくれるのはかなり大きい。
IDEが使える環境ならxmlもチェックしてくれるが、
使えない環境では実行時にしか分からないのが痛い。
IDE使っててもリファクタリング何それ?な奴が殆どだけどな
いいよGuice
>>92 一番はありえないだろjava使ってたらさ…とまじれす
95 :
デフォルトの名無しさん:2007/04/06(金) 22:43:10
×一番はありえないだろjava使ってたらさ…とまじれす
○一番下はありえないだろIDEでjava使ってるならさ…とマジレス
>>95 いや、ありえる。
リファクタリングとユニットテストの関係を分かってない奴だと、1度動いたソースを修正することに抵抗が在る奴らが多い。
リファクタリングって別にIDEでの一部の機能だけをさすわけじゃないから
動いてるソースをいじるのは誰だって抵抗はあるだろ
つーか
Guiceがリファクタリングにコレまで以上に貢献しているってわけでもないような・・・・
>>97 jUnitできちっとテストコード書いてる
テストファースト信者なおれは抵抗ないがな
>>99 単体テストが通るのは当たり前
それ以外の抜けが問題になる場合もあるわけで
>>100 それは仕様漏れでリファクタリングには関係ないだろ
>>99 多分これから貢献する。
Javaだけで完結すると言う事は開発現場に時々居る
プロジェクトで決められたプラグインを入れない馬鹿でも
ビルドエラーに気付けると言うことだからな。
>>100 シナリオベースの単体テストが書けてないお前が馬鹿なだけ。
まぁ、DI使おうが何使おうがとにかく一番恐ろしいのはUI層にロジックを書いてしまう事だな。
SwingでもStrutsでもUIに近いところは自動化できない(難しい)領域っていうのは紛れの無い事実。
リファクタリングも実装の置き換えも、自動テスト無しでは
どうしてやっても自信を持って変更後のソースの正当性を保障する事が難しくなる。
>>102 シナリオベースとかそういう話以前の問題
単体テストやコードがみんなまともにできていれば苦労はせんよ
わざとバグ出してくださいっていうところも多いしな
100行に3つくらいバグがナイトテストが不十分とか言う富士通系で多いアレとか
パーペキなコードを書いてやったら、
テストでバグが出なくて品質に問題「あり」にされてしまった俺を助けて。
>>104 それはテストケース(チーム)が悪いって事にしとけ
2.0待ち?
普通に安定して動いてるよ
WebアプリならViewとDAOは何組み合わせるとウマーな感じ?
無難にStrutsとハイバネあたり?
GuiceはStruts2サポートされてるよ
DAOは何使ってもいいけどJPA使うだろうからTopLinkのほうがおそらく便利
実際裸のDIコンテナなんだよなー
トンクス
そうだよね
シンプルたから何使っても良いのが萌え(*´Д`)
とりあえすStruts使うとして
DAOはS2DAOとか組み合わせてみようかな…とか妄想中
何それ?
まぁ遊びならなんだっていいんじゃね
>>112 S2系は業務で使うのは止めといた方がいいぞ
グーグル ジュース か。ストローがほしいなw
Guiceはぐいすと読んでしまう
しかし、依存ライブラリがないってのはいいね
だが結局はおざなりのライブラリの組み合わせになってしまう事実w
>>118 元々勝手に好きなの使えってスタンスなんじゃね?
好きな組み合わせがGuice+Struts+Hibernateって
個性を主張してもやってることは皆同じw
しかもそれらのプロバイダーは自分で書かなきゃならんしw
逆に自作DIフレームワーク作るベースとしてはおもろいかもね
そうか!これからgoogle版ORマッパーを出す伏線なんだな
むしろリレーショナルDBに変わる物出してくれって気もするが
で
実務でつこてんの?
googleがつかってるな
あほか
つかってるよ
うそつけ
128 :
デフォルトの名無しさん:2007/04/18(水) 01:33:36
使いたいが、サーバーがjava5対応して無いから使えね〜〜〜〜〜
これからGuiceくるぞ。
SpringとSeasarを使い込んだおれが言うんだから間違いない。
つこてんの?
つこてるよ
ふーん。どこで?
業務で
うそつけ
うそじゃないよ
これからGuiceくるぞ。
googleへ。
あほか。
雑談はーーーーーーーー終了ーーーーーーーーー
I USE IT.
新規のプロジェクトはGuiceしか考えられないね
で
実務でつこてんの?
つこてる
しかしDIコンテナの数が増えるのはいただけない。
そろそろ学習コストこそがJavaの最大のボトルネックだと気づいて欲しい。
JDBC4.0がDAOの主流になることを祈るばかり。
JDBC4は静的なSQLしかつかえんのがな
INはコレクションわたせるようにならんかな
あとJDBC4はいまだ未完成では?
JPAともかぶりやすいのが癌
うそつけ
実は学習しないヤツがこの業界全てのボトルネックだという事実
全然事実じゃねーよ、混沌としすぎてRubyが持てはやされてるくらいだ
あほか
うそじゃないのに
オナニー言語ってことだろ
Javaは
Springを大体知ってりゃguiceの学習時間は10分で済むって
つか覚えるとこねーじゃん
なんにもないんだから
で
実務でつこてんの?
つこてるよ
AdWordsがGuiceつこてるらしいし、自信作らしいってことは確か。
あほか
何か湧いてるな
Guiceがシェアとると困る人はというと・・・
その内Guice用のなんたらがわんさか出てくるんかのー?
Struts2とかはGuiceが一番現実的だな
あとサーバーサイドではSpringなど比較的なんでもいいけど
クライアントサイドだとGuiceが一択かと
163 :
デフォルトの名無しさん:2007/04/20(金) 22:08:40
165 :
デフォルトの名無しさん:2007/04/20(金) 22:30:19
>162 名前: デフォルトの名無しさん Mail: sage 投稿日: 2007/04/19(木) 23:38:48
>Struts2とかはGuiceが一番現実的だな
>
>あとサーバーサイドではSpringなど比較的なんでもいいけど
>クライアントサイドだとGuiceが一択かと
クライアントサイド( ゚Д゚)
クライアントサイドのコードもかけないド素人かよ
162の人気に嫉妬
Guiceのことで語ることはないのがなー
現実のシステムで、DB回りとかのUnitTest以外で役に立つ場面てあるの?
机上の空論じゃなくて、現実のシステムで、な。
>DB回りとかのUnitTest以外
ソコが限定される理由もわからんがw
こいつ670KBって、クライアントじゃ起動時間が惜しくて使えないな
Class#forNameとMap<String, Deque>あたりの即席DI&プールで十分かと
zipのサイズを言うのはおかしいな。とはいってもjarも544KBあるが。
というかサイズと起動時間がどう関係あるの?
クラスの依存関係が深ければ取り出しに時間が掛かるでしょ
巨大なjarがアプリケーションの起動にかける負荷を知らない奴はクソ。
「サーバーサイドなら、一度起動したら普通落とさないから」
とか知った風な事を言う奴も同様にクソ。
177 :
デフォルトの名無しさん:2007/04/21(土) 00:49:57
キチガイの罵詈雑言でスレが滅茶苦茶になるパターン飽きた
DI関係でひとつのスレッドにすりゃよかったんだ
世界はお前の都合に合わせて回っているわけではない。
ならぐだぐだでも文句は言えんな
死ねキチガイ
世界はお前の都合に合わせて回っているわけではない。
183 :
デフォルトの名無しさん:2007/04/21(土) 01:28:06
言ってる本人が一番基地ってるってとこが哀れだな
なんでここ荒れてんの
キチガイが出没したから
自己紹介乙って言われるだけだっていい加減気づけよ
ただ騒ぎ立てたいだけなんだろうが
荒らすなよ。よそ行ってやれ。
うっ、もれそう。ちょっとトイレを貸してくれないか。
何これ?
また異常者が自作自演してるのか?
キチガイほどキチガイって言葉を使いたがる良いサンプルスレになったな
ここでやる意味がわからん
荒らしのセンスすらゼロだな
でも普通に安定して動いてるよ
自作自演乙
溜まってるのは判ったから
とにかく荒らすな
>>194 荒らしは無視が一番。かまわないほうがいいよ。
>>194 おまえが消えろよ、学習能力ない奴だな・・・
| \
|Д`) ダレモイナイ・・オドルナラ イマノウチ
|⊂
|
♪ Å
♪ / \ ランタ タン
ヽ(´Д`;)ノ ランタ タン
( へ) ランタ ランタ
く タン
♪ Å
♪ / \ ランタ ランタ
ヽ(;´Д`)ノ ランタ タン
(へ ) ランタ タンタ
> タン
異常なまでの過剰反応っぷりに
病的なものを感じた。
荒らし以前に、つまらなすぎてイラっとくるわ
キティなのは知ってたけど、バカになっちゃったの?
544KB程度で巨大なの?
そんなに負荷かかるもんなの?
いや知らないから聞いてるんだけどね。
>>201 おれは十分軽いと思うんだけどね。
使ったこともないやつがふかしてるだけかと。
203 :
デフォルトの名無しさん:2007/04/21(土) 01:58:54
話題のつまらなさにイラッとくるわ
バカでキティなのは知ってたけど、
最近ますます心にゆとりがなくなってるな
>>203 来んなよw
おめえが荒らすから人が少ねんだよw
ハッタリをからかうと面白いな。
ちょっとつついただけで、すぐに10も20もレスを返してくる。
もし心にゆとりがあったら軽くスルーできる程度の話。
ゆとりの無い奴らしかいないスレだな・・・
おい、ハッタリ
いい加減にしろ
悪いことは言わない、病院へ行け。
ハッタリ、もう荒すのはよせ
お前のハッタリはスレ汚しだ
さっさと首吊れ
なにがよせだよ
いい加減にして、豆腐スレ帰っぞ
>>206 いつも切迫してるから、ちょっとした事でキレまくるのな
それがハッタリくんの人生
なんで小物と決め付けるの?
まあだいたい実務で使ってるっていってるヤツも
ゴミのような小さい規模のアプリ(っていうかアプレット?)
しか作ってないんだと思うけどね
大きいのにつこてるよ
うそつけ
うそじゃないよ
DIなしなら何msなの?
いやいやいやいや
ほんまに…?
いや、冗談だよね?
マシンスペックにもよるだろう
ハッタリの自作自演は無駄口が多いから
延々と話題が上滑りして本質的な議論は何も行われないのが特徴
>>224 本質的な議論はじめていいぞ。はやくしろ。
ハッタリにタダで情報提供する筋合いはない。
独りでオナってろ
>>226 あれ?お前の嫌いなたかひろとおんなしこといってらw
あーあ。
またお前の脳内友達の話か。
230 :
デフォルトの名無しさん:2007/04/21(土) 11:38:36
お先にどうぞ。
結局お前の一番ダメな所は
ハッタリこいて延々話を空回りさせて
スレに誰も寄り付かないような状況にすることだ。
パーサスレのデタラメさ加減、どーしよーもねぇだろ。
まず基礎知識をちゃんと付けろ。
あと、くだらねぇ自作自演やってる暇があったら
自分で勉強して自分で成果出して、
成果だけ発表しろ。
ハッタリちゃんはスルー力が足りない。
きっと、スルーしたらハッタリを認めた事になるから
スルーできないのだろう。
なんだ自己分析できてるのか
へたっぴw
ハッタリをちょっと突付いたら一昼夜キチガイ騒ぎか
だらしねぇ
俺のレスみて勉強しろ。へたっぴ荒らしw
まだイジメられたいのかwマゾかお前は
・基本的にスルー力が足りないのだと思う。
・「荒しに反応するのも荒し」という経験則が、
荒し検出に非常に有効である事を再確認できた。
・同様に「キ○○○という単語に過剰反応を示す奴は、
たいてい本人がキ○○○」という経験則が得られた。
DI frameworkの中じゃ一番速い訳だが
>27 名前: 1 Mail: sage 投稿日: 2007/03/24(土) 18:48:31
>
>>24 >そうならないように、スピード比較結果を貼ってみる
>1回目
>Spring: 1,734 creations/s
>Guice: 35,161 creations/s
>S2: 18,395 creations/s
>2回目
>Spring: 1,776 creations/s
>Guice: 37,202 creations/s
>S2: 19,394 creations/s
>3回目
>Spring: 1,783 creations/s
>Guice: 36,764 creations/s
>S2: 19,164 creations/s
>
>数字大きい方が速いって事で。
>
>
http://d.hatena.ne.jp/arumani/20070315/p2
それはDIコンテナの初期化そのものじゃないから計測対象が違う。
サーバ用途としては今後筆頭のDIコンテナになるだろうことは確か。
Springからしても競合相手じゃなくて補完してくれるサービスプロバイダってだけ。
サーバープログラムで起動時間が多少かかったとしても問題あるとは思わんがな
>>240 補完?あきらかにベースを置き換える物なんだが
Guice理解してるか?
クライアントで0.1秒起動が遅れても問題があるとはおもえないけどな
GWTの例もあるし、単にGoogleってだけで広まるとは思えない
革命的に既存のDIコンテナとは違う! という機能を提供してるわけでもないしな
・軽量であること
・タイプセーフであること
・従来のコードでもすぐに実装可能なこと
・上記によって拡張がしやすいこと
>>241 Springの一部を肩代わり出来るモジュールだな。
まぁ、DI部分だからベースと言えん事もないが
こいつの発言がいつも挙動ってるのはデフォ?
>>247 アペオスは飛ばないし、Googleは挙動らないだろう?
>>247 自作自演の人だから。
時々ツッコミが入ると挙動る。
で?
つこてるよ
大きいのにもつこてるか?
つこてるよ
サンクス!
どのくらいの大きさ?
このっくらい…だったよ。By船長
ふーん
つこてるよ
クライアントにも鯖にも
Guice使ってみてがっかりしたこと。
例えば以下のように依存性注入をしようとしたとする。
binder.bind(Clock.class).to(ClockImpl.class).in(Scopes.SINGLETON);
普通、この一文は全部補完出来るだろうと考えるだろう。
けど、bind の中は補完が聞かないのだ。
正直泣けた。
>>260 でだ。お前は一体何が原因で泣いてるんだ
eclipseを使ってて
binder.bind(C ←この状態で Ctrl+Spaceで補完候補をリストしようとしたが、うんともすんとも言わなかった。
つかなんで其処だけできないわけ?
そんなことありうるの?
利くよ?おまいさんのeclipseがおかしいだけじゃない?
そうなのか。バージョンアップしてくらぁ。
なんという春・・・
Springといいますかな?
真っ当なスレ名で技術系の話題がまったくないスレというのもめずらしい
Googleってだけで無条件に全てを超越してるみたいな考えの信者が沸くんだよなw
DIスレでは当たり前
Seasarのスレってよくのびるよなぁ・・・
色々な意味でホットだからね
最近は標準信仰な俺様としては、Springの味方が増えるのは複雑なんだぜ。
なんかDIスレって初心者が質問して、
そこから荒れて行くパターン多いよな。
やっぱり、しったか君達が多いって事なんだろうか
そうだな
DIはアノテーション中毒に掛かりすぎだな
XMLの変わりにアノテーションに注目が集まって
アノテーションが多すぎるから今度はメタアノテーション。
むしろXML中毒すぎたのでは?
設定が多いのウゼーよなー
色々できるけど設定覆いみたいなんじゃ本末転倒
Guice使ってからSpring使おうとすると、XMLの記述に引く
俺Springからの以降だけど、かなり満足
定義をどこでやるかの違いでしかないといいたいところだが、
Guiceはプル型でSpringはプッシュ型だからまったく使い方や考え方が違うんだよね
おかげでファサードパターンやアダプターパターンが便利すぎる
krank crudってSpring経由じゃないとGuiceで使えんの?
プル型ってDIじゃなくてサービスロケータになるじゃんよ。
使い方おかしくね?
注入されるオブジェクトをコントロールできるサービスロケータ
GuiceやEJB3は現実的な解をとったんだよ
やってることはそうかわらんことと、注入される場所がコードを見て明示的であることは大きい
>>283 SpringのJpaSupportつことるから無理じゃね
Google、Guice用も作ってくれよGoogle
ここまでか・・・・
Guiceは自前でフレームワークを作る場合に最適だな
JPAも特に面倒なことはないしな
だな
290 :
デフォルトの名無しさん:2007/05/07(月) 22:39:03
seasarあげ
つか
使ってないんでしょホントウは
つこてるよ
どんな業務のシステムにつこてんの?
流通系だよ
これ以上はさすがに無理
Guice以外は何つこてんの?
JPAだよ
そんなに勿体つけることもあるまいが
まさか自作JPA実装?
つまんね
Guiceもな
インパクトよえーよな
seasar2よりましだからどうにでもなる
ふーん
で?
Guice終わったな・・・・
しかしながら
使う気になれんなー
語ることねーな
みんな業務で試用していて忙しいし
. ィ
.._ .......、._ _ /:/l! またまた ご冗談を
:~""''.>゙' "~ ,、、''‐'、| _
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':,
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'゙
つこてるよ
次の案件で激しく使いたいが
APサーバがjava1.4なんだよな。。ORZ
. ィ
.._ .......、._ _ /:/l! またまた ご冗談を
:~""''.>゙' "~ ,、、''‐'、| _
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':,
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'゙
guiceはseasar2よりはいい
なんかGuiceマンセーな奴以外ってこと
guiceのスレでしかもguice使っていればマンセーするのも当たり前だろ
seasar2スレはみなかったことに
マンセーしてる奴は一人と見てるが・・・?
意気消沈?
つこてるよ
大きいのにもつこてるか?
つこてるよ
空気のようにつこてるよ
金融系でもつこてるか?
闇金融系でつこてるよ
開発規模は?
Springを順次おきかえてるよ
guiceでカリー化の記事よんだか?
政府系でつこてるか?
まだ研究機関ではつこてないあるよ
チンコつこてるか?
334 :
デフォルトの名無しさん:2007/06/09(土) 23:17:54
これとibatis組み合わせて使ってる人いないかね
Struts2とかは大体Springと同じやり方で行けたんだけど、ibatisのトランザクション管理を上手いことGuiceで乗っとるやり方が見つからない
WEBアプリなら何をやるにしてもスレッドローカル使うだけじゃね?
サーブレットのサンプルもそうなってるはずだし
336 :
334:2007/06/10(日) 00:02:46
自分で使う分にはスレッドローカルで適当に何とか出来ちゃうんだけど、
iBATISのqueryForObjectとかで内部的に使っているConnectionを
なんとか制御できないとトランザクション管理が出来ないんだよなー。
JTAとかなら問題ないんだろうけど。
ibatisで鯖で使いたいのなら普通にJTA使うだろ・・・
つこてるよ
プ
__ ┌<.^ヽ::/:::::/ ̄ ̄ ̄ ̄`ヽ:::::::::::\
. / ヽ. ,.ヘ⊥/:::::/___ マ::::::::::::ヽ
/ マ´ /::::::::::::::::;ィ::::/::::::::::::: ̄ヽ. |:::::::::::|:::ヘ
| ● ト/::::::::::\:/ !::::l::::::::!::::::::::ヽ::\|:::ヽ::/::::::| __
| |′:::::;イ::/ヽ l::::ハ::::::|:::::::::::::|:::::::::::::::}' ̄ ̄ {
. ,r1 l::::::::::l |::| ヘ.|:::| l::::::ト:::::::::::ハ::::|:::|:::::| ヽ<二フ
/'_コ |、::::::| V ヾ| ヽ:::|_,ゝ‐:T'|:::ル::::::| ヘ` ー-、
i´ ! l ヽ::::| ニミ:.、 ベ _,ゞ'=レ、l:::::::::| _〉ト、
. ノ \ l:::ヽ ` 'f rヘ, ハ.ヽ:::::::{Tマ:::::ヽ ` 鼻クソびーっ
r´ ヽ、 |ヽ` 、 ' ヒこソイ'´::::::/}:|. ';:::::::l
! ヘ T _, j ヽ. }、 }'` ー、 `´/:::::::::::/:::::| ヾ::::!
ノ ', Y_,-〈 V、:\ 、__ ノ /::::::/::/::::::∧ ヾ!|
{ _ ヽ ,`-' | lヾ:/ヽ _. - ァ'::::::://::::::/:/:7T゙:|
ヽ. \ \__/ | | ' |ヽ、 /::ィ フ:/:::: ィヽイ::/l:j l:|
|` - 、>´ !'´ _. --r ’.l. |\.` ー‐/ イ1;r7´/ /¬ /' '′
ヽ、_ ` ーゝ-'rイ ! :l l. |ヽ 二..ア ´{!' / / | ∧
 ̄ ´ .ゝ |:| マ / / / // / ヽ
,r'´ | ヽヽ ∨ / / /∠ -' 〉
. _/ ー-、 lヽソ∠二二 ´ -'_/_). ,.〈
,.- ´ ′ ン' ̄{_フヽ二ネ¨ ,rァ─一´ ヽ----'´ |
〉 ヽ ノ ハ`t.-' Y1 /
. 〈 / ` | | ヽ ヽ、 | ヽ /
. \ /| | | \ \ 'シラ´ ̄ ̄ ̄
気にするな
guiceのbindInterceptorってProviderで返したインスタンスとかには適用されない?
自分でMatcher実装して調べてみた感じだめだっ多っぽいんだけど。
@Inject(optional=true)の場合もInterceptorされないからきっとこれもされないんだろうなあ。
なこたーない
あと@Injectは関係ないし
なんか、誰も使ってないのかしらん?
Guice使って、SpringみたいにTransaction管理を
任せる方法ってどなたかご存知ありません?
SpringでもSeasar2でもGuiceでも同じだろ
>>346 概念的なものは同じでも、設定方法とか違うと思うんですけど、同じなんですか?
リファレンスに書いてあるだろ
servletとの連携部分とかすでにあるっしょ
それ見ればわかるかと
むしろGuiceはシンプルなので他のものより理解はしやすいはず
>>347 用意されたものを使うしか脳がないならSpring使っとけ
>>343 >>344 これ実際試してみた人いる?
俺もダメなんだけど。
単純なクラスをgetInstanceしたものと、
単純なクラスをnewして返すだけのProviderを指定したクラスをgetInstance
したもので比較したけど前者しかMethodInterceptorが効かない。
toInstanceとProviderはインターセプトされないってのは常識かと
Guiceに生成を任せないってことは自前でセットアップしろということだろうね
353 :
351:2007/10/18(木) 17:17:36
>>352 あらま
じゃあ
>>344がてきとーなことぬかしてただけか。
でもEJBとか使う場合はProvider使うのが一番自然だよなーー。
実際GuiceのJndiIntegrationにあるProviderもにたような問題が起こりそうだし。
EJB3で収まる範囲ならEJB3の使ったほうがいいんじゃね?
そもそもproviderはあんまり使えるとはおもえんし
355 :
デフォルトの名無しさん:2008/03/08(土) 23:00:36
アメリカのSanta Claraに来ています(サンノゼのすぐそば、サンフランシスコから車で1時間弱)
こういうカンファレンスに参加してきたのだが、
http://www.sdexpo.com/ そのなかで Guice のクラスがあった。
プレゼンのpdfが以下にあります。speaker は Bob Lee氏(Google の guice の開発チームの一人)
http://crazybob.org/sdwest (最後に / をつけちゃダメ)
http://crazybob.org/ ←Lee 氏の blog
内容は・・・・たぶんこのスレに来ている人はみんな知っているようなことだと思う。
(あと自分の英語力が足りなくてすべて理解できなかったけど)、たいてい PDF に書かれていることでした。
あと pdf のp45にもあるけど、そのうちツール面をリリースするつもりだ、と言っていました。
・Struts との統合、spring における struts integration みたいなもの
・Hibernate, JPA との統合
JPAサポートは標準でほしいね
357 :
デフォルトの名無しさん:2008/08/06(水) 23:55:53
流行っていないのかage
過疎にもほどがある
ImplementedByアノテーション使うべきか。
Moduleクラスを実装すべきか。
どっちがいい?
EJB3のような動作を期待したいなら前者で後者は実際の運用で必要になることはまずない
実装クラスは定義なしで使えるんで、小規模ならば実装クラスをそのまま使い、
あとで切り分けが必要になったらインターフェースに置き換えて分離する
というのでいいと思う
Namedだと手軽だけどタイプセーフじゃないし、Guiceのターゲットとなるアプリは
DIのみが重要って幹事が多いから、同じインターフェースで実装を変えるという
ことはしないほうがいい
もしやりたいなら継承したインターフェース使うのがいい
あとJavaコードならばIDEによるサポートはかならずあるので、
使用しているコードからインターフェース>実装コードと探すのがすごく楽
AOPでトランザクション管理するにはSpringと組み合わせなきゃ駄目?
なぜそう思うのだ
guice単体で見たときに、トランザクション管理の仕組みが無いようなので。
AOP使うんでしょ?
なら出来ないと思う理由がわからない
まずAOP使わないでトランザクション管理はできてるよね?
それはできます。
O/Rマッパー(例えばhibernate)を使ったときに
guice側でトランザクション管理がしたいんです。
366 :
デフォルトの名無しさん:2008/09/07(日) 16:34:20
フルスタックのフレームワークを使えばそういうことは
考えなくて済むぞw
釣りにマジレスカコワルイ
これだけ情報少ないとやっぱ導入したら
後の人に恨まれるだろうなあ
俺も昔enhydra導入した馬鹿先輩を恨んだしなあ
まだあったか
DIというか疎結合というかインターフェース重視というか、
その辺の設計のツボがわかるようなお勧め本ないですか?
もうパターンはうんざり
どうせみんな使いこなせないから
ってかパターンについて根本的に勘違いしてるな。
特別なテクニックではなくて、カタログ化されたことが重要なんだよ
そんなはなししてねーよ
問題はそんな一般論は誰でも騙れるが
活用できる奴がいないということだよ
つまり絵に書いたもちと同じって事
お前らのような奴はデザパタなんて考えなくていいし
クラス設計なんかもし無くていいよ糞が
お前の周りにはいなさそうだなw
まー能書きたれるのは一人前な奴が多いのがこの業界だから仕方あるまい
実際、疎結合というかインターフェース重視をより意識するようになったのはGoFのデザインパターン本だったので
>>371に答えただけなのだけども、馬鹿が混じって変な流れになったな。
どーでもいーです
GuiceとS2JDBCを組み合わせて使えないかな。
コンテナ2つ使うというのが気に入らない・・・
コンテナはGuiceを使うってことだろjk
それだとS2JDBCつかえんだろ
だから「使えないかな」って希望かいてんじゃねぇの?
つーかS2JDBCってコンテナのjarに入ってるんだけどな
分離するやつなんているのか?
具体的なやり方かかない時点で・・・
jarくらい入ってても良いだろ
392 :
デフォルトの名無しさん:2009/05/22(金) 15:49:09
2.0 age
1.0とほとんどかわってないね
だがそれがいい
こっちのDIは過疎ってるな
特に話すような話題がないのか、公式コミュで十分なのか・・・
>>394 はまる要素ないからね
さくさく開発できる
日本語の入門書は出てますか?
Androidで使ってる奴いる?
399 :
デフォルトの名無しさん:2011/03/26(土) 07:40:12.55
3.0 age
やっと3.0出たのか。
TestNGにも組み込まれるっていうし、もっと普及するといいんだけど。
402 :
デフォルトの名無しさん:2011/10/29(土) 18:46:32.30
トランザクション管理がないとSpringの代わりにできないんよ
403 :
デフォルトの名無しさん:2011/11/23(水) 21:29:12.43
>>402 トランザクション管理がないって本当か?
@Transactionalっていうアノテーションは何の機能もないよ。
ポイントカットがないんだから当然のこと。
Guiceは使い道が無い。
基本、自分で組めってスタンスだからな
アドインのMyBatis Guiceでは、そのアノテーションくっつけると
トランザクション管理が動くように実装されてる。
機能面とインターフェースで作りこみがいまいちと思う。
Namedとか最悪。
オブジェクト作るところは冗長でも全てProviderがいいと思った。
XMLファイル使わないからサーバー起動時の設定が早いな。
動き出してからはspringと変わらんが。
407 :
デフォルトの名無しさん:
保守