インターフェースクラスやら設定やら増えまくって
かなりめんどくなってんだけどw
【Java】DIコンテナって本当に便利か?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2008/08/20(水) 23:23:262008/08/20(水) 23:42:55
DIってなに使ってるんだよw
いまどきXML地獄なんてどのFWにも無いぞ
いまどきXML地獄なんてどのFWにも無いぞ
3デフォルトの名無しさん
2008/08/22(金) 00:40:41 使わずに組んだほうがラク
2008/08/22(金) 01:57:47
5デフォルトの名無しさん
2008/08/22(金) 05:09:45 優柔不断すぎるプロジェクトが多い気がする。
インタフェース作っても、実装クラス一つしかなかったり。
結局、特定の組み合わせでしか動かなかったり。
インタフェース作っても、実装クラス一つしかなかったり。
結局、特定の組み合わせでしか動かなかったり。
2008/08/22(金) 10:44:21
実装クラスひとつはふつうと言えばふつう。
2008/08/23(土) 15:43:06
>>1
インターフェース書くのが嫌ってことなら、そっちの方が大問題だね
まあ、そもそも DI するのにインターフェース書かなきゃいけないってことは無い訳だが
脱線するが、
interface と abstract class は全く違うものなんだけど、分かってるつもりでいて、実は分かってないやつは非常に多い
>>1 もそんなとこだろう
abstract class は拘束、interface は主体的な宣言とか言ったらヒントになるか…
共通点は勿論あるんだが、設計においては、これは全く違う意味を持ってくる
それが分からんと、 interface の価値が見出せなくなったりするようだ
なんと言うか、interface を拘束の意味でしか理解していないとでも言うか…
それから、実装クラスが一つしかないと、端折って直接実装を呼びたくなったりするらしいが、
その点 DI は interface の旨味を再確認させてくれる。
インターフェース書くのが嫌ってことなら、そっちの方が大問題だね
まあ、そもそも DI するのにインターフェース書かなきゃいけないってことは無い訳だが
脱線するが、
interface と abstract class は全く違うものなんだけど、分かってるつもりでいて、実は分かってないやつは非常に多い
>>1 もそんなとこだろう
abstract class は拘束、interface は主体的な宣言とか言ったらヒントになるか…
共通点は勿論あるんだが、設計においては、これは全く違う意味を持ってくる
それが分からんと、 interface の価値が見出せなくなったりするようだ
なんと言うか、interface を拘束の意味でしか理解していないとでも言うか…
それから、実装クラスが一つしかないと、端折って直接実装を呼びたくなったりするらしいが、
その点 DI は interface の旨味を再確認させてくれる。
2008/08/23(土) 23:57:34
>>7
お前が interface と abstract class の違いをよく理解していないことだけはわかった
お前が interface と abstract class の違いをよく理解していないことだけはわかった
2008/08/24(日) 02:25:07
↑
どうやら何かを判ったつもりになってひとりで納得しているの図
どうやら何かを判ったつもりになってひとりで納得しているの図
10デフォルトの名無しさん
2008/08/24(日) 10:08:27 インターフェースは不要っしょ
俺ぁ余計なクラス、設定が増えまくる事自体が問題だと思う
俺ぁ余計なクラス、設定が増えまくる事自体が問題だと思う
2008/08/24(日) 10:39:57
springスレも落ちたし、guiceスレも時間の問題だな。
2008/08/24(日) 12:41:17
具体的な個々の処理が存在するならインターフェースは書くべきだよ
実装しかないと、常に密結合状態じゃん
サービスの実装に
new InitialContext();
とか直接書いたりしないでしょ?それと同じ
後から何か処理を加えたいと思った場合、インターフェースがあれば最初の実装に手を加えなくても済むケースがあるでしょ?
実装しかないと、そいつにドンドン追加する羽目になりがち
下に何か加えることは出来るけど、上に被せられないし
それに、インターフェース守れば良いんだから、却って自由に書けると思うんだが
ただ DI に関して、設定が増えまくるのは確かに苦痛
そこでアノテーション
でもこれって、テストとリリースでどうやって分けんのかとか、ちょっと混乱しそうな気もする
ルール付け徹底すりゃいい話なんだろうけど
実装しかないと、常に密結合状態じゃん
サービスの実装に
new InitialContext();
とか直接書いたりしないでしょ?それと同じ
後から何か処理を加えたいと思った場合、インターフェースがあれば最初の実装に手を加えなくても済むケースがあるでしょ?
実装しかないと、そいつにドンドン追加する羽目になりがち
下に何か加えることは出来るけど、上に被せられないし
それに、インターフェース守れば良いんだから、却って自由に書けると思うんだが
ただ DI に関して、設定が増えまくるのは確かに苦痛
そこでアノテーション
でもこれって、テストとリリースでどうやって分けんのかとか、ちょっと混乱しそうな気もする
ルール付け徹底すりゃいい話なんだろうけど
13デフォルトの名無しさん
2008/08/24(日) 12:58:04 ぐだぐだなところは、インタフェースを書き換えるから意味ないって。
2008/08/24(日) 13:05:54
XMLが地獄だと思わないんだが。
クラス図書くより全然楽だし。
アノテーションの方が地獄っぽくないか?
組み合わせ変更するのに、なんでコンパイル必要なんだよ。
何のために interface 書いたのか分からん。
もっとも DI 嫌ってる人は、そんな瑣末なことなんてどうでもいいんだよ。
本当は疎結合の良さが分かってないだけ。
自分がなんで DI 好きになれないのか、それすら分かってない。
DI なんてどうでもいいから、疎結合に慣れろ。
慣れた結果、密結合で十分かつ適当な場合と
そうではない場合が分けられるようになればそれでいい。
クラス図書くより全然楽だし。
アノテーションの方が地獄っぽくないか?
組み合わせ変更するのに、なんでコンパイル必要なんだよ。
何のために interface 書いたのか分からん。
もっとも DI 嫌ってる人は、そんな瑣末なことなんてどうでもいいんだよ。
本当は疎結合の良さが分かってないだけ。
自分がなんで DI 好きになれないのか、それすら分かってない。
DI なんてどうでもいいから、疎結合に慣れろ。
慣れた結果、密結合で十分かつ適当な場合と
そうではない場合が分けられるようになればそれでいい。
2008/08/24(日) 13:18:46
疎結合を保つためにDIは必要ないし、
DI使ってても密結合になってる例はたくさんあるし。
DI使ってても密結合になってる例はたくさんあるし。
2008/08/24(日) 13:36:21
>>15
確かに
結局は分かってるか分かってないかに落ち着いてしまうのかな
シングルトン強制ギプスとか思っても、分かってりゃ必要に合わせてシングルトンで書くわけだし
ただAOPは捨てがたいな
AOPを捨てれないとDIも捨てられないw
確かに
結局は分かってるか分かってないかに落ち着いてしまうのかな
シングルトン強制ギプスとか思っても、分かってりゃ必要に合わせてシングルトンで書くわけだし
ただAOPは捨てがたいな
AOPを捨てれないとDIも捨てられないw
2008/08/24(日) 13:48:19
>>12
>>10を見て目を疑ったんだが、結合度とか凝集度って未だに普及してない概念なのかねぇ。
まぁ、インターフェース大増殖とか設定ファイル大増殖とかアノテーションだらけってのは見てて気分のいいもんではない、というのは確かなんだが。
そこらへん、Scalaだとだいぶ緩和されそうだけど、普及するかなぁ。
interface Hige { String execute(); }
void hoge(Hige hige) { println(hige.execute()); }
が、
def hoge(hige: {def execute: String}) = println(hige.execute)
(higeがStringを返すexecuteメソッドを持っていれば何でもいい)
となるので、リスナーみたいなインターフェースはまとめて削減できそう。
>>10を見て目を疑ったんだが、結合度とか凝集度って未だに普及してない概念なのかねぇ。
まぁ、インターフェース大増殖とか設定ファイル大増殖とかアノテーションだらけってのは見てて気分のいいもんではない、というのは確かなんだが。
そこらへん、Scalaだとだいぶ緩和されそうだけど、普及するかなぁ。
interface Hige { String execute(); }
void hoge(Hige hige) { println(hige.execute()); }
が、
def hoge(hige: {def execute: String}) = println(hige.execute)
(higeがStringを返すexecuteメソッドを持っていれば何でもいい)
となるので、リスナーみたいなインターフェースはまとめて削減できそう。
1816
2008/08/24(日) 13:49:56 いや、やっぱ必要ないファクトリ書くのも プロパティセットするコード書くのも面倒くさいからDI捨てらんないわ
2008/08/24(日) 15:00:05
>>15
確かに。でもそれを言い始めたらキリがないのでは。
確かに。でもそれを言い始めたらキリがないのでは。
2008/08/24(日) 16:40:09
>>11
Seasarのことも思い出してください><
Seasarのことも思い出してください><
2008/08/24(日) 18:38:55
疎結合?ソースが見にくいんですけど
2008/08/24(日) 19:30:53
ネタなのかマジなのか微妙なところ突いてくるな
2008/08/24(日) 19:42:31
成果物としてのコードが特定のフレームワークに強く依存するのが怖い。
「それがどうした、知らないお前が勉強不足」と開き直れるほど枯れた技術ではないし。
開発現場が全速力で短距離を走り抜けるための技術というか…
と感じながらも全速力で走らメシが食えないから使うんだけどな。
「それがどうした、知らないお前が勉強不足」と開き直れるほど枯れた技術ではないし。
開発現場が全速力で短距離を走り抜けるための技術というか…
と感じながらも全速力で走らメシが食えないから使うんだけどな。
2008/08/24(日) 20:46:26
特定のフレームワークに ”強く依存” ってのが気になるね。
いったいどんなコード書いてんだ?
ぶっちゃけ特定の「なんちゃら」への依存が弱まることはあっても、強くなるケースっていまいち想定できないな。
モジュール間の結合度を弱めてテストをし易くするのが利点と思いきや、”強く依存” とはこれ如何に?
もしそれでモデルにフレームワークへの依存が入り込んでるんなら、実装に問題があると思ったほうが良いのでは?
内製だったらモデルとフレームワークの強い依存関係が許される、なんてオチじゃないよね?
あと枯れてる枯れてないって、じゃ generics や annotation は枯れてないから使わねーと?
いったいどんなコード書いてんだ?
ぶっちゃけ特定の「なんちゃら」への依存が弱まることはあっても、強くなるケースっていまいち想定できないな。
モジュール間の結合度を弱めてテストをし易くするのが利点と思いきや、”強く依存” とはこれ如何に?
もしそれでモデルにフレームワークへの依存が入り込んでるんなら、実装に問題があると思ったほうが良いのでは?
内製だったらモデルとフレームワークの強い依存関係が許される、なんてオチじゃないよね?
あと枯れてる枯れてないって、じゃ generics や annotation は枯れてないから使わねーと?
2008/08/24(日) 21:17:10
> 開発現場が全速力で短距離を走り抜けるための技術というか…
それは RoR とかポトペタで画面作れますとか、
O/R mapper でウハウハだよもんとか、
そう言うレベルの話では。
DIコンテナが提供してくれるのは糊だけ。
既存のポトペタとくっつけたきゃそうするし、
フルスクラッチの俺様フレームワークとくっつけても良いし。
疎結合の利点を最大で活かすために糊に徹してるのが DI コンテナ。
それは RoR とかポトペタで画面作れますとか、
O/R mapper でウハウハだよもんとか、
そう言うレベルの話では。
DIコンテナが提供してくれるのは糊だけ。
既存のポトペタとくっつけたきゃそうするし、
フルスクラッチの俺様フレームワークとくっつけても良いし。
疎結合の利点を最大で活かすために糊に徹してるのが DI コンテナ。
2008/08/25(月) 01:06:47
下手のコードを閉じ込める
自分でファクトリ書かなくていい
テストコードが嫌でも書きやすくなる
下2つが特に有難い
短期開発でメンバのスキルが低いときは逆にDI使わないと品質は保てない
ファクトリ書いてる時間を他の作業に回せるし
自分でファクトリ書かなくていい
テストコードが嫌でも書きやすくなる
下2つが特に有難い
短期開発でメンバのスキルが低いときは逆にDI使わないと品質は保てない
ファクトリ書いてる時間を他の作業に回せるし
27デフォルトの名無しさん
2008/08/25(月) 08:03:17 ファクトリとかわざわざつかわねーし。
余裕あるんだな
余裕あるんだな
2008/08/25(月) 21:35:10
密結合を気にしない >>27 の一言でした
ファクトリ書かなくても良いってのが DI の利点の一つなわけだが、
そもそもなんでファクトリ書くべきなのか分からんようでは、その利点も分からん訳だ。
溝は深いね〜
ファクトリ書かなくても良いってのが DI の利点の一つなわけだが、
そもそもなんでファクトリ書くべきなのか分からんようでは、その利点も分からん訳だ。
溝は深いね〜
2008/08/25(月) 22:17:32
>>28
ファクトリとかソースが見にくくなるだけ。
ファクトリとかソースが見にくくなるだけ。
2008/08/25(月) 22:59:07
大抵のOSSのフレームワークやミドルウェア製品の
提供するAPIには必ずファクトリが含まれるわけだが
提供するAPIには必ずファクトリが含まれるわけだが
2008/08/26(火) 01:31:50
「DIのいいところ教えてください。」
って聞きたいのに、強がって
「DIコンテナって便利か?」
って聞いてるわけか。
って聞きたいのに、強がって
「DIコンテナって便利か?」
って聞いてるわけか。
2008/08/26(火) 03:55:28
DIコンテナが分からないんじゃなくて
それが登場した背景の考え方が分かってない。
だからいつまで経っても話がかみ合わない。
モジュールの凝集度高めて疎結合目指すなんてのは
それこそ20年以上前から言われてることなのに
理解して実践してるのはごく少数なのが現実。
それが登場した背景の考え方が分かってない。
だからいつまで経っても話がかみ合わない。
モジュールの凝集度高めて疎結合目指すなんてのは
それこそ20年以上前から言われてることなのに
理解して実践してるのはごく少数なのが現実。
2008/08/26(火) 21:52:13
だよもんとか(某板の外では)数年ぶりに聞いた
2008/08/26(火) 22:29:25
>>32
全くもってそうらしいね
今途中から突っ込まれて行ってるプロジェクトは結構グダグダで火を吹いてるんだが、
ソースを見てビックリ呆れること多数。
所謂大規模開発で、結構な数の業者が入っていて、開発人員も多いんだけどね。
規模なんてソースの品質には関係ないらしいよ。
勿論 DI なんて使ってないんだが、更に残念な事に自分等でファクトリを書いてない。
おまけにベンダ製のツールが吐いたファクトリクラスがあるんだが、
そのファクトリを使うとき、getFactory() ってなスタティックメソッドがあるにも関わらず
毎 回 そ の フ ァ ク ト リ を new し て る 。 orz
てめぇー、インスタンスの取得方法を知らなくてもいいようにファクトリがあんのに、
そのファクトリを毎回 new してどーすんのよ!?ってな感じ orz orz
そんなコードがゴロゴロ
こんなんが某超大手元受の金融機関向けシステム開発だってんだから
残念な業界ですねって言いたくなるよ。
その残念な質の一画を自分の会社が占めている事実が更に残念。
早く辞めてぇ
(マな内容でスマソ)
全くもってそうらしいね
今途中から突っ込まれて行ってるプロジェクトは結構グダグダで火を吹いてるんだが、
ソースを見てビックリ呆れること多数。
所謂大規模開発で、結構な数の業者が入っていて、開発人員も多いんだけどね。
規模なんてソースの品質には関係ないらしいよ。
勿論 DI なんて使ってないんだが、更に残念な事に自分等でファクトリを書いてない。
おまけにベンダ製のツールが吐いたファクトリクラスがあるんだが、
そのファクトリを使うとき、getFactory() ってなスタティックメソッドがあるにも関わらず
毎 回 そ の フ ァ ク ト リ を new し て る 。 orz
てめぇー、インスタンスの取得方法を知らなくてもいいようにファクトリがあんのに、
そのファクトリを毎回 new してどーすんのよ!?ってな感じ orz orz
そんなコードがゴロゴロ
こんなんが某超大手元受の金融機関向けシステム開発だってんだから
残念な業界ですねって言いたくなるよ。
その残念な質の一画を自分の会社が占めている事実が更に残念。
早く辞めてぇ
(マな内容でスマソ)
3534
2008/08/26(火) 22:38:15 誤:インスタンスの取得方法を
正:インスタンスの生成方法を
正:インスタンスの生成方法を
36デフォルトの名無しさん
2008/08/26(火) 23:19:54 >>34
お前も残念な会社の社員なんだろ?www
お前も残念な会社の社員なんだろ?www
2008/08/26(火) 23:59:18
>>34
気持はわかるけど、ここマ板じゃないから。
気持はわかるけど、ここマ板じゃないから。
2008/08/27(水) 00:18:53
39デフォルトの名無しさん
2008/08/27(水) 00:24:48 Springスレが落ちたってのがDIはゴミってのを物語ってないか?
2008/08/27(水) 00:28:08
>>34
>ベンダ製のツール
そのベンダ製のツールの使用ガイドとかはちゃんとアナウンスされてるんだろうな?
「用意しました。後勝手に使ってね」ってのはマネジメントしてねぇ。
>規模なんてソースの品質には関係ないらしいよ
基本的には「ある」と思ってる
規模が大きくなればなるほど全体的なソースの品質は低下する
まあ上記のような問題を解決するための手段として
AOPやらDIみたいなのが出てきたのだけど
結局AOPやDIで何がやりたいかの理解が
実装者個人個人にまかされてしまってるのが問題な希ガス。
実装ガイドくらいではそこまでの統一はとりづらい。
で堂々巡りな状況に陥ってるような。
>ベンダ製のツール
そのベンダ製のツールの使用ガイドとかはちゃんとアナウンスされてるんだろうな?
「用意しました。後勝手に使ってね」ってのはマネジメントしてねぇ。
>規模なんてソースの品質には関係ないらしいよ
基本的には「ある」と思ってる
規模が大きくなればなるほど全体的なソースの品質は低下する
まあ上記のような問題を解決するための手段として
AOPやらDIみたいなのが出てきたのだけど
結局AOPやDIで何がやりたいかの理解が
実装者個人個人にまかされてしまってるのが問題な希ガス。
実装ガイドくらいではそこまでの統一はとりづらい。
で堂々巡りな状況に陥ってるような。
2008/08/27(水) 00:36:09
DIに興味ない人がたくさんてことを物語ってるとは思う。
興味ある人も取り立てて語る事なかったし。
気になって試して、気に入ったら使う。
ドキュメントが詳細だから疑問に持つこともない。
> 結局AOPやDIで何がやりたいかの理解が
テストとか便利にできるよ程度でいいんだけどね。
テスト極めようと思ってれば、気がつけば疎結合になってるだろうし、
適切なテストがきちんと通るなら品質には問題は出ない。
でも背景知らずにツールだけ知って、
使い方分からない、良さ分からないとか言ってる人が多数なわけで。
で、説明するのも面倒だから放置して
気が付くと自分しか使ってないとか、そんな感じ。
興味ある人も取り立てて語る事なかったし。
気になって試して、気に入ったら使う。
ドキュメントが詳細だから疑問に持つこともない。
> 結局AOPやDIで何がやりたいかの理解が
テストとか便利にできるよ程度でいいんだけどね。
テスト極めようと思ってれば、気がつけば疎結合になってるだろうし、
適切なテストがきちんと通るなら品質には問題は出ない。
でも背景知らずにツールだけ知って、
使い方分からない、良さ分からないとか言ってる人が多数なわけで。
で、説明するのも面倒だから放置して
気が付くと自分しか使ってないとか、そんな感じ。
2008/08/27(水) 01:11:47
DIに限らないけど「技術に興味が無い人が使うツール」というところまで持っていかないと広まらないよ。
4334
2008/08/27(水) 02:04:26 >>36
笑いごっちゃーないですわ…
>>37
重々承知です。ご勘弁を
>>38
辞めるにしろ、対策するにしろ、具体策を考えてるところです。
ただ、このプロジェクトは今更どうこう出来る状態じゃないので、今ある部分は最後までそのままだと思われ。
>>40
そのベンダのツールは勿論マニュアル付きです。
つか、読まなきゃ使えないはず…
まあファクトリを理解せずに毎回 new しちゃってる、ってことなんだと思いますよ…
>>規模なんてソースの品質には関係ないらしいよ
>基本的には「ある」と思ってる
>規模が大きくなればなるほど全体的なソースの品質は低下する
…
次転職するときは面接で何を聞かなきゃいけないか良く分かった、ってことは最近痛感している。
笑いごっちゃーないですわ…
>>37
重々承知です。ご勘弁を
>>38
辞めるにしろ、対策するにしろ、具体策を考えてるところです。
ただ、このプロジェクトは今更どうこう出来る状態じゃないので、今ある部分は最後までそのままだと思われ。
>>40
そのベンダのツールは勿論マニュアル付きです。
つか、読まなきゃ使えないはず…
まあファクトリを理解せずに毎回 new しちゃってる、ってことなんだと思いますよ…
>>規模なんてソースの品質には関係ないらしいよ
>基本的には「ある」と思ってる
>規模が大きくなればなるほど全体的なソースの品質は低下する
…
次転職するときは面接で何を聞かなきゃいけないか良く分かった、ってことは最近痛感している。
2008/08/27(水) 02:27:13
2008/08/27(水) 21:26:50
>>39
ああ、落ちてる。せっかく立てたのに・・・。
ああ、落ちてる。せっかく立てたのに・・・。
46デフォルトの名無しさん
2008/08/27(水) 22:58:15 蜜結合でも機能ごとに分かれてた方が
結局後で分かりやすいんだよな
結局後で分かりやすいんだよな
2008/08/28(木) 00:32:17
Springスレ立てないの?
SpringMVC語ってくれる人あそこくらいだったんでよく見に行ってたんだが
SpringMVC語ってくれる人あそこくらいだったんでよく見に行ってたんだが
2008/08/28(木) 01:32:59
>>47
もはやS2の方が完全上位なんじゃね?
もはやS2の方が完全上位なんじゃね?
49デフォルトの名無しさん
2008/08/28(木) 06:20:19 学べば学ぶほど悲しくなる
無知こそ最強って感じだよorz
無知こそ最強って感じだよorz
2008/08/28(木) 06:42:56
>>24
利用するDIコンテナに強く依存
利用するDIコンテナに強く依存
2008/08/28(木) 08:15:02
>>49
相当流行ってからじゃないと勉強もイミないかも・・・
相当流行ってからじゃないと勉強もイミないかも・・・
2008/08/28(木) 19:54:11
人は流れに乗ればいい
2008/08/28(木) 22:50:00
jspを書かなくていいとか、
せっかく覚えたのに。。。
せっかく覚えたのに。。。
2008/08/29(金) 01:48:31
>>47
俺もSpringMVCが好きなんだけど、
じゃぁ毎日語ることがあるのかと言われると、そんなものはない。
Spring スレは3年くらいスレが保守されてたが、
1.2.x が安定したころから、特に話題もなくなった。
俺もSpringMVCが好きなんだけど、
じゃぁ毎日語ることがあるのかと言われると、そんなものはない。
Spring スレは3年くらいスレが保守されてたが、
1.2.x が安定したころから、特に話題もなくなった。
2008/08/30(土) 01:50:09
>>54
SpringMVC悪くないんだけど、
あのControllerの深い継承具合はどうかと。
なんだよ、あのテンプレートメソッドの嵐。
せっかくDIコンテナなんだから、
ブリッジパターンとかもーちょっとすっきりできなかったのかよ。
SpringMVC悪くないんだけど、
あのControllerの深い継承具合はどうかと。
なんだよ、あのテンプレートメソッドの嵐。
せっかくDIコンテナなんだから、
ブリッジパターンとかもーちょっとすっきりできなかったのかよ。
2008/08/30(土) 19:32:22
引数戻り値に平気でコレクションの実装クラス使う連中にDIが理解できるはずがない
57デフォルトの名無しさん
2008/08/31(日) 14:28:16 Springはゴミですかそーですか
2008/08/31(日) 16:20:22
>>56
気持ちはわかる。なにも考えずにそういう事する奴は確かにいる。
メソッド全部publicとかと同レベル。
でもサービスクラスを書いてるときに、要素の入れ替えがあるから
LinkedListに使ってるよーとか、こいつは要素追加するとソートされるよ
とかを利用者に伝えるために戻り値の型を実装クラスで書いた方が
いいんじゃないかと思うこともある。
気持ちはわかる。なにも考えずにそういう事する奴は確かにいる。
メソッド全部publicとかと同レベル。
でもサービスクラスを書いてるときに、要素の入れ替えがあるから
LinkedListに使ってるよーとか、こいつは要素追加するとソートされるよ
とかを利用者に伝えるために戻り値の型を実装クラスで書いた方が
いいんじゃないかと思うこともある。
2008/08/31(日) 16:37:08
ファクトリを書かなくていいのにメリットがあるのは同意だけど、
起動時遅いとかメモリ喰うとかのデメリットもあるよね。
インジェクションするクラスを設定で簡単に切り替えられるのが
一番の目的だったと思うんだけど、本番環境にデプロイするのは
1パターンだけであまりメリットが感じられない。テスト用なら
こんな高機能いらなくて設定ファイルでObjectIdと実クラス名
の紐付けできるファクトリがあればいいだけだし。
似たようなシステムをちょこっとクラス入れ替えていくつも
リリースするような時には確かに有効。ソースツリーも
一つで管理できるし。でもそんなプロジェクト一回しか経験したこと無い。
Web側(jsp)は全然違うから別ソースだし。似たようなプロジェクトの時も
反省点を踏まえて作り直したりするし。
ファクトリのコード削減とAOPによるログ出力くらいなんでしょうか。
起動時遅いとかメモリ喰うとかのデメリットもあるよね。
インジェクションするクラスを設定で簡単に切り替えられるのが
一番の目的だったと思うんだけど、本番環境にデプロイするのは
1パターンだけであまりメリットが感じられない。テスト用なら
こんな高機能いらなくて設定ファイルでObjectIdと実クラス名
の紐付けできるファクトリがあればいいだけだし。
似たようなシステムをちょこっとクラス入れ替えていくつも
リリースするような時には確かに有効。ソースツリーも
一つで管理できるし。でもそんなプロジェクト一回しか経験したこと無い。
Web側(jsp)は全然違うから別ソースだし。似たようなプロジェクトの時も
反省点を踏まえて作り直したりするし。
ファクトリのコード削減とAOPによるログ出力くらいなんでしょうか。
60デフォルトの名無しさん
2008/08/31(日) 17:09:36 >>50のレスが秀逸すぎるわ
2008/08/31(日) 20:56:39
>>59
起動遅いのはあまり問題にならんと言うか、
モジュールレベルで完璧に作れてれば
あとは組み合わせるだけなんで、別にどうでも・・
クライアントアプリなら問題にはなるけど
あまりそういう分野で使われてないだろうし。
逆に S2みたいな Hot-Deploy を売りにするセンスが俺には理解できない。
結局つながないと開発できないのかよ、それって DI かよって。
メモリってそんなに食う?これは実感したことないや。
日頃からテストがきちんとできる仕組み用意して
それを実践してるなら、別に DI コンテナ使う必要はないよ。
俺は自分で用意するの面倒だし、
自分のコードなんて全然信用してないから
十分にテストされたものを使うだけの話。
起動遅いのはあまり問題にならんと言うか、
モジュールレベルで完璧に作れてれば
あとは組み合わせるだけなんで、別にどうでも・・
クライアントアプリなら問題にはなるけど
あまりそういう分野で使われてないだろうし。
逆に S2みたいな Hot-Deploy を売りにするセンスが俺には理解できない。
結局つながないと開発できないのかよ、それって DI かよって。
メモリってそんなに食う?これは実感したことないや。
日頃からテストがきちんとできる仕組み用意して
それを実践してるなら、別に DI コンテナ使う必要はないよ。
俺は自分で用意するの面倒だし、
自分のコードなんて全然信用してないから
十分にテストされたものを使うだけの話。
2008/08/31(日) 21:09:44
>>59
>ファクトリのコード削減とAOPによるログ出力くらいなんでしょうか。
それって大きいと思うけど。
それから宣言的トランザクションは使わないの?
今のプロジェクトで DI,AOP 使えれば良いのに、ってかなり思うよ。
ログ出力のコード分量もかなりなもんだし、
トランザクション制御の為に、サービスクラスに abstract execute() みたいなの強制してて超汚ねーし、
必要ない new をやたらと書きまくるやつはいるし(これは別問題か…)
慣れてきてから、DI 使わないプロジェクトで同じ事やろうとしてごらん。
汚いの面倒くさいの… 馬鹿らしくなるよ。
>ファクトリのコード削減とAOPによるログ出力くらいなんでしょうか。
それって大きいと思うけど。
それから宣言的トランザクションは使わないの?
今のプロジェクトで DI,AOP 使えれば良いのに、ってかなり思うよ。
ログ出力のコード分量もかなりなもんだし、
トランザクション制御の為に、サービスクラスに abstract execute() みたいなの強制してて超汚ねーし、
必要ない new をやたらと書きまくるやつはいるし(これは別問題か…)
慣れてきてから、DI 使わないプロジェクトで同じ事やろうとしてごらん。
汚いの面倒くさいの… 馬鹿らしくなるよ。
2008/08/31(日) 23:50:23
うちが使ってるフレームワークもどきみたいなのでは
ServiceとDaoは自動生成でSinleton生成コード吐くし、
bean idとクラス名結びつけるファクトリは枯れたxml読み込み
クラスを利用して1クラスで完結してるんですわ。
private AnyService anyService;
と宣言してアクセッサ用意するより
private AnyService anyService = AnyService.getInstance();
で設定したクラスをインスタンス化できた方が若干楽だし
publicなget/setAnyService()があるとそれを利用側プログラムで
呼び出していいと思われても嫌だし。springでセットしたserviceが
入ってるからgetしても問題は無いんだけど。
そうするとspringしらない技術者がヘルプで入ってきたときに
DIっていうのはねっていうところから説明するより全然
教育コストも低いんですよ。
起動が遅くなるのはEclipseでデバッグ時にちょっとした修正で
いちいち時間かかって精神衛生上よくないっていうだけで根本的な
問題ではないけど。
ServiceとDaoは自動生成でSinleton生成コード吐くし、
bean idとクラス名結びつけるファクトリは枯れたxml読み込み
クラスを利用して1クラスで完結してるんですわ。
private AnyService anyService;
と宣言してアクセッサ用意するより
private AnyService anyService = AnyService.getInstance();
で設定したクラスをインスタンス化できた方が若干楽だし
publicなget/setAnyService()があるとそれを利用側プログラムで
呼び出していいと思われても嫌だし。springでセットしたserviceが
入ってるからgetしても問題は無いんだけど。
そうするとspringしらない技術者がヘルプで入ってきたときに
DIっていうのはねっていうところから説明するより全然
教育コストも低いんですよ。
起動が遅くなるのはEclipseでデバッグ時にちょっとした修正で
いちいち時間かかって精神衛生上よくないっていうだけで根本的な
問題ではないけど。
2008/08/31(日) 23:57:13
AOPによるログ出力はブレークポイントつけてステップ実行が当たり前に
なった今存在意義が薄いし、ソースの骨格が自動生成でこみいったとこだけ
手で実装なので、むしろうまく行っているところはトレースログとりたくないし。
トランザクションは昔から使ってるDBコネクションプールがThreadLocalで
好きなとこでstart()/commit()させてくれるのでこれをService内に
明示的に書いてある方が問題があったときにどこでcommit()/rollback()
されてるかわかりやすいと思うんだけど、もう俺の考えが古いのかなあ。
デバッグ担当する人間が全員springのxmlの仕様を知っていないと
「どこでコミットされているかすぐに把握できない」のはめんどくない?
ずっと少数精鋭主義のプロジェクトでやっていけるなら別だけど
なった今存在意義が薄いし、ソースの骨格が自動生成でこみいったとこだけ
手で実装なので、むしろうまく行っているところはトレースログとりたくないし。
トランザクションは昔から使ってるDBコネクションプールがThreadLocalで
好きなとこでstart()/commit()させてくれるのでこれをService内に
明示的に書いてある方が問題があったときにどこでcommit()/rollback()
されてるかわかりやすいと思うんだけど、もう俺の考えが古いのかなあ。
デバッグ担当する人間が全員springのxmlの仕様を知っていないと
「どこでコミットされているかすぐに把握できない」のはめんどくない?
ずっと少数精鋭主義のプロジェクトでやっていけるなら別だけど
2008/09/01(月) 00:04:32
自己レスだけど
>bean idとクラス名結びつけるファクトリは枯れたxml読み込み
>クラスを利用して1クラスで完結してるんですわ。
結局DIしてるわけだからこのスレとは違っちゃうか
>bean idとクラス名結びつけるファクトリは枯れたxml読み込み
>クラスを利用して1クラスで完結してるんですわ。
結局DIしてるわけだからこのスレとは違っちゃうか
2008/09/01(月) 00:29:30
>>63
それでうまくプロジェクトが回ってるならそれでいいと思う。
教育コストはDIがどうこうよりも、
テストファーストがどうこう、
ステートレスがなんやら、
疎結合だとあれこれ・・の説明に苦心しない?
「ふーん、面倒なんですね」の一言で片づけられた日には悲しくなったよ。
で、今日もまたテストケース書かないコードをコミットしやがる・・・
それでうまくプロジェクトが回ってるならそれでいいと思う。
教育コストはDIがどうこうよりも、
テストファーストがどうこう、
ステートレスがなんやら、
疎結合だとあれこれ・・の説明に苦心しない?
「ふーん、面倒なんですね」の一言で片づけられた日には悲しくなったよ。
で、今日もまたテストケース書かないコードをコミットしやがる・・・
2008/09/01(月) 00:40:51
>AOPによるログ出力
俺もこれは例示のための例示にしか過ぎないと思う。
通常、AOPはメソッド境界で作用するけど
このレベルで横断的にログ取りたいものなんて殆どないし。
メソッド内部の動作で不審な動きがないかチェックしたいとは思うけど、
取得したい情報なんて処理ごとに異なるし、そもそもAOPでは制御不能。
AOP使う話であれば、トランザクションと認証回りが適切な例だと思う。
>少数精鋭主義のプロジェクトでやっていけるなら
別に精鋭じゃなくても設定くらい読めるから。
トランザクションが何か分かってるなら、書き方・読み方教えて終了。
いろんな場所でトランザクションの開始・終了が出来れば
きっと効率が良いのだろうけど、少数精鋭ならともかく
現実の開発でそれやるとロクなことにならんですよ。
好き勝手に開始して放置して、もうグダグダ。
多分、今まで少数精鋭でやってきて、そういう事態に陥らなかったんだと思う。
俺もこれは例示のための例示にしか過ぎないと思う。
通常、AOPはメソッド境界で作用するけど
このレベルで横断的にログ取りたいものなんて殆どないし。
メソッド内部の動作で不審な動きがないかチェックしたいとは思うけど、
取得したい情報なんて処理ごとに異なるし、そもそもAOPでは制御不能。
AOP使う話であれば、トランザクションと認証回りが適切な例だと思う。
>少数精鋭主義のプロジェクトでやっていけるなら
別に精鋭じゃなくても設定くらい読めるから。
トランザクションが何か分かってるなら、書き方・読み方教えて終了。
いろんな場所でトランザクションの開始・終了が出来れば
きっと効率が良いのだろうけど、少数精鋭ならともかく
現実の開発でそれやるとロクなことにならんですよ。
好き勝手に開始して放置して、もうグダグダ。
多分、今まで少数精鋭でやってきて、そういう事態に陥らなかったんだと思う。
2008/09/01(月) 01:09:29
正直テストファーストはどうかなあと思ってる。
昔みたいにウォーターフォールで仕様変更したら別料金とりますよっていうなら
いいけど、仕様が変わる度にテストケースも保守していくのは
常に詳細設計ドキュメントを保守し続ける位面倒。んで最後にまとめて
作ろうと思って納期迫ってカバレッジ低いテストケース書いてるから
それも駄目なんだけどね。
AOPは結局ログくらいしか思いつかなかったんだよね。Webばっかりだから
認証はそれこそBaseActionかInterceptor(struts2)で入り口でやってあげれば
済むし。
springだけを教えてるなら設定くらいすぐ覚えるだろうけど、
プロジェクト参加当初は業務もプログラムも教えることいっぱいだし、
問題があったときにデバッガで追ってればすぐわかる方がいいと思うけどなあ。
トランザクションの開始・終了はServiceクラス内の同一メソッドでとルールで
縛ってるので、というかdaoも自動生成で複数テーブルに対するトランザクション
管理をしたいと思ったらこれしか書きようが無いんだ
try{
DBManager.startTransaction();
dao1.insert(obj1);
dao2.insert(obj2);
DBManager.commit();
}catch(...){
DBManager.rollback();
}
daoが自動生成なせいで、複雑なDBも処理もdaoに書いて
serviceから呼び出す、daoでトランザクション管理しない
っていうのが徹底されてるのが効いてるのかな。
昔みたいにウォーターフォールで仕様変更したら別料金とりますよっていうなら
いいけど、仕様が変わる度にテストケースも保守していくのは
常に詳細設計ドキュメントを保守し続ける位面倒。んで最後にまとめて
作ろうと思って納期迫ってカバレッジ低いテストケース書いてるから
それも駄目なんだけどね。
AOPは結局ログくらいしか思いつかなかったんだよね。Webばっかりだから
認証はそれこそBaseActionかInterceptor(struts2)で入り口でやってあげれば
済むし。
springだけを教えてるなら設定くらいすぐ覚えるだろうけど、
プロジェクト参加当初は業務もプログラムも教えることいっぱいだし、
問題があったときにデバッガで追ってればすぐわかる方がいいと思うけどなあ。
トランザクションの開始・終了はServiceクラス内の同一メソッドでとルールで
縛ってるので、というかdaoも自動生成で複数テーブルに対するトランザクション
管理をしたいと思ったらこれしか書きようが無いんだ
try{
DBManager.startTransaction();
dao1.insert(obj1);
dao2.insert(obj2);
DBManager.commit();
}catch(...){
DBManager.rollback();
}
daoが自動生成なせいで、複雑なDBも処理もdaoに書いて
serviceから呼び出す、daoでトランザクション管理しない
っていうのが徹底されてるのが効いてるのかな。
2008/09/01(月) 09:45:29
横道にそれるけど、なんか同情したのでいきなりレス。
>>66
Unitテストが義務化されていないからだな。
これはかなり大変。「テストを楽にする」は
意外に動機として大きいから。
仕様書が明確に落ちて無いと末端の子に
テストファーストは難しいけど、デグレードを
未然に防ぐ為のテストセカンド(造語)くらいから
やるのはどうだろう。
自分のコードにバグが無いことの証明だから
ホントはやってて当たり前なんだけど。
>>66
Unitテストが義務化されていないからだな。
これはかなり大変。「テストを楽にする」は
意外に動機として大きいから。
仕様書が明確に落ちて無いと末端の子に
テストファーストは難しいけど、デグレードを
未然に防ぐ為のテストセカンド(造語)くらいから
やるのはどうだろう。
自分のコードにバグが無いことの証明だから
ホントはやってて当たり前なんだけど。
7069
2008/09/01(月) 09:47:40 続き。
疎結合は再利用性。
「ほら、別のプロジェクトでも簡単に使いまわし
できただろ?」
って言える例を作ってやれればどうにか。
ようは教える側がメリットを示すのが良いと思う
(デグレードが減る。使いまわしが楽など)。
ただし、教えられる側が
・時間内手を動かしてさえいれば金が貰える
・バグで人に迷惑をかけてもかまわない
そんな思想だと哲学から変えないとダメ。
疎結合は再利用性。
「ほら、別のプロジェクトでも簡単に使いまわし
できただろ?」
って言える例を作ってやれればどうにか。
ようは教える側がメリットを示すのが良いと思う
(デグレードが減る。使いまわしが楽など)。
ただし、教えられる側が
・時間内手を動かしてさえいれば金が貰える
・バグで人に迷惑をかけてもかまわない
そんな思想だと哲学から変えないとダメ。
2008/09/01(月) 10:06:33
いろいろ経験して
「newを直に書きたくない」
という思想にいたる事が出来れば
DIコンテナのメリットが説明しやすい。
結局ある程度抽象化の概念に
同意していない人には無用の長物かも。
「newを直に書きたくない」
という思想にいたる事が出来れば
DIコンテナのメリットが説明しやすい。
結局ある程度抽象化の概念に
同意していない人には無用の長物かも。
72デフォルトの名無しさん
2008/09/02(火) 00:22:1373デフォルトの名無しさん
2008/09/02(火) 00:29:44 個人的なDIの欠点はデバッガでなければソースを追えないって点だな。
interfaceベースで作ってたら、当たり前の現象なんだが、IDEのパワーをないがしろにしてる。
それでもDI自体は分業に向いてると思うし、俺は好きだ。
interfaceベースで作ってたら、当たり前の現象なんだが、IDEのパワーをないがしろにしてる。
それでもDI自体は分業に向いてると思うし、俺は好きだ。
2008/09/02(火) 01:30:45
原理主義者はDIとかアスペクト好きなんだよ
もうほんと、それだけ
問題は、Javaがそもそも原理主義的なコーディングに不向きなことと
現実世界(特にビジネスまわり)がちっとも原理主義に根差してないことが原因で、
DIから得られる現実的なメリットが、ほとんど実感できないくらい
小さくなってしまっていること
もうほんと、それだけ
問題は、Javaがそもそも原理主義的なコーディングに不向きなことと
現実世界(特にビジネスまわり)がちっとも原理主義に根差してないことが原因で、
DIから得られる現実的なメリットが、ほとんど実感できないくらい
小さくなってしまっていること
2008/09/02(火) 01:59:43
現実世界も整理すればそれなりにスッキリしてるんだが
現実を現実のまま処理しようとして
ステートフルな世界に走ろうとして失敗してる人が多数居る。
ところで原理主義って何?
現実を現実のまま処理しようとして
ステートフルな世界に走ろうとして失敗してる人が多数居る。
ところで原理主義って何?
76デフォルトの名無しさん
2008/09/02(火) 03:03:42 ジャヴァはブルーカラーからのラングエジじゃなかったか?
2008/09/02(火) 03:40:53
DIはログとかトランザクションの管理に便利。
共有リソースの管理に便利。
共有リソースの管理に便利。
2008/09/02(火) 04:39:25
なんと言う後付けユーティリティ
2008/09/02(火) 04:53:57
なにか問題でも?
逆に、共有リソースの管理がスタティック変数でまかなえる場合や、ログ・トランザクションをそこまで徹底しない場合は、DIコンテナ不要。
逆に、共有リソースの管理がスタティック変数でまかなえる場合や、ログ・トランザクションをそこまで徹底しない場合は、DIコンテナ不要。
2008/09/02(火) 04:54:48
ログ・トランザクションは徹底というか、単純なルールが適用できる場合にDIが有効か。
8169
2008/09/02(火) 09:21:142008/09/02(火) 09:30:42
>>73
同じ事がインターフェースを
たくさん使ったソースコード(非DI)を
新人さんが読んでいる時に起こっていた。
あるメソッドが呼ばれているはずなんだけど
呼び元にEclipseで飛んでもインターフェース
にしか辿り着けないという形。
力技でもどうにかできるようにしたければ
インターフェース使わずに書くのも良いと思う。
どこで切るのかの問題かもしれないけど。
同じ事がインターフェースを
たくさん使ったソースコード(非DI)を
新人さんが読んでいる時に起こっていた。
あるメソッドが呼ばれているはずなんだけど
呼び元にEclipseで飛んでもインターフェース
にしか辿り着けないという形。
力技でもどうにかできるようにしたければ
インターフェース使わずに書くのも良いと思う。
どこで切るのかの問題かもしれないけど。
83デフォルトの名無しさん
2008/09/02(火) 12:15:15 つctrl+t
俺もDIは好かんけど
eclipseもまともに使えないヤツには無理
俺もDIは好かんけど
eclipseもまともに使えないヤツには無理
2008/09/02(火) 16:36:26
なんですとぉ!?
85デフォルトの名無しさん
2008/09/02(火) 23:56:13 POJOってどうよ。アレを実現するための設定も
面倒に感じるんだが。
面倒に感じるんだが。
2008/09/03(水) 00:43:13
2008/09/03(水) 01:11:41
トランザクションのネストってどんなケース?
外側トランザクションの中に内トランザクションがいくつかあるの?
内トランザクション1がコミット成功して内トランザクション2で
失敗したらどうなるの?
外側トランザクションの中に内トランザクションがいくつかあるの?
内トランザクション1がコミット成功して内トランザクション2で
失敗したらどうなるの?
2008/09/03(水) 01:32:12
内1のトランザクション状態を内2で引き継いで
内2で失敗した時点で内1もひっくるめてロールバックされる。
コミットが行われるのは外のトランザクションが成功した時。
内2で失敗した時点で内1もひっくるめてロールバックされる。
コミットが行われるのは外のトランザクションが成功した時。
2008/09/03(水) 01:37:24
外側で宣言してれば内側のコミットは無視されて、
内1だけ呼びたい時は内1のコミットをアテにして、
内1、内2って呼びたいときは内1の中に書いてあるトランザクション処理を
無視できるから楽ってこと?
内1だけ呼びたい時は内1のコミットをアテにして、
内1、内2って呼びたいときは内1の中に書いてあるトランザクション処理を
無視できるから楽ってこと?
2008/09/03(水) 22:57:52
>>85
POJO と abstract class タイプフレームワークの綱引きがあって、
睡眠不足で寝ぼけてると、見当違いのところに abstract class タイプのフレームワークを適応しちゃったりする。
使い分けは、きっちりやりたいね。
ちゃんと睡眠とって、すっきり脳味噌で POJO を書こう。
今大人気だから覚えといて損はないよ
POJO と abstract class タイプフレームワークの綱引きがあって、
睡眠不足で寝ぼけてると、見当違いのところに abstract class タイプのフレームワークを適応しちゃったりする。
使い分けは、きっちりやりたいね。
ちゃんと睡眠とって、すっきり脳味噌で POJO を書こう。
今大人気だから覚えといて損はないよ
91デフォルトの名無しさん
2008/09/04(木) 00:20:52 POJOはフレームワークに依存、
StrutsクラスはStrutsに依存。
おまえらバカなんじゃね?
StrutsクラスはStrutsに依存。
おまえらバカなんじゃね?
2008/09/04(木) 00:35:08
意味不明
2008/09/04(木) 00:38:06
>>91
依存してるかどうかじゃなくて依存をコントロールできることが重要なのに、何言ってんだおまえは。
依存してるかどうかじゃなくて依存をコントロールできることが重要なのに、何言ってんだおまえは。
2008/09/04(木) 00:46:32
たかが Bean Builder に御大層な名前が付いただけ。
2008/09/04(木) 01:57:13
長くこの業界にいて思うこと。
構造化プログラミングの時だってごく少数の優秀な人は
わかりやすくて綺麗な構造化をしていた。OOPの時代になっても
優秀な人の割合は変わってない。凡人がソースを書くときの
汚さが、構造化の時よりちょっとマシになっただけ。
でもその恩恵はインターネットの普及により情報が得やすく
なったせいかもしれない。
構造化プログラミングの時だってごく少数の優秀な人は
わかりやすくて綺麗な構造化をしていた。OOPの時代になっても
優秀な人の割合は変わってない。凡人がソースを書くときの
汚さが、構造化の時よりちょっとマシになっただけ。
でもその恩恵はインターネットの普及により情報が得やすく
なったせいかもしれない。
2008/09/04(木) 02:20:31
根幹部分は自分で書いて、ビジネスロジックだけ構造化OOP使いに書かせるから問題なし。
DIなら上流PGの実装が間に合わない時はDAOの具体実装をダミーにしとくとか調整も出来るよ。
DIなら上流PGの実装が間に合わない時はDAOの具体実装をダミーにしとくとか調整も出来るよ。
2008/09/04(木) 03:18:44
2008/09/04(木) 05:21:34
>なぜ考えないのか。
なぜそんな上から目線なのか
どこからどこまでを同じトランザクションにまとめないといけないのか、
は本質的な処理だろ。マーチンファウラーの提唱するような薄いサービス層の
ポリシーを守っていれば、トランザクション管理をxmlに置くのか
Serviceメソッド内に置くのかの違いでしかない。トランザクションの
範囲を確認するのに設定ファイルを別に開くよりは見やすい。
注文と残高を同時更新する場合と、残高だけを更新する場合で
Serviceを分けなくても良い(前者の場合でも残高だけ更新Serviceを呼び出しても
よい)というのは確かにメリットだと思う。
なぜそんな上から目線なのか
どこからどこまでを同じトランザクションにまとめないといけないのか、
は本質的な処理だろ。マーチンファウラーの提唱するような薄いサービス層の
ポリシーを守っていれば、トランザクション管理をxmlに置くのか
Serviceメソッド内に置くのかの違いでしかない。トランザクションの
範囲を確認するのに設定ファイルを別に開くよりは見やすい。
注文と残高を同時更新する場合と、残高だけを更新する場合で
Serviceを分けなくても良い(前者の場合でも残高だけ更新Serviceを呼び出しても
よい)というのは確かにメリットだと思う。
2008/09/04(木) 11:32:30
今はネットで回答だけ得られるからね。
昔は本とか読むしかなかったから、いきなり答えが得られることは少なかった。
だからどうしても書いてあることを理解して自分で応用する必要があった。
昔は本とか読むしかなかったから、いきなり答えが得られることは少なかった。
だからどうしても書いてあることを理解して自分で応用する必要があった。
100デフォルトの名無しさん
2008/09/04(木) 15:02:30 宣言的トランザクションは実装としてAOPを利用しているけど、
特定のメソッドから特定のメソッドの間でトランザクションを定義することは
横断的な情報、つまりAOPじゃないよね
特定のメソッドから特定のメソッドの間でトランザクションを定義することは
横断的な情報、つまりAOPじゃないよね
101デフォルトの名無しさん
2008/09/04(木) 15:53:23 うんそう思う。
ただしトランザクションをどう実装するかはコードの本質ではない。
ただしトランザクションをどう実装するかはコードの本質ではない。
102デフォルトの名無しさん
2008/09/05(金) 01:27:42 どこからどこまでをトランザクションの範囲にするかってことが
必ずしも本質的な処理とは思えないんだが・・・
むしろ「モデルの状態を元あった状態に戻す」ためのひとつの実装パターンに
すぎないのでは?
必ずしも本質的な処理とは思えないんだが・・・
むしろ「モデルの状態を元あった状態に戻す」ためのひとつの実装パターンに
すぎないのでは?
103デフォルトの名無しさん
2008/09/05(金) 10:31:45 そうじゃなくて、少なくともこのメソッドのスコープ内は
トランザクション処理しなきゃならないとかそういう話。
トランザクション処理しなきゃならないとかそういう話。
104デフォルトの名無しさん
2008/09/05(金) 23:02:14 >>103はだれにレスしてんだ?
105デフォルトの名無しさん
2008/09/06(土) 01:42:18 オライリーのインターフェイス指向設計を読み終えた。
わりと良書だったが、悲しいかなDIの話題はなかった。
(チラッと名前だけ出る程度。)
代わりにサービスをルックアップするコードが記述されていた。
今時どうかと思った。
わりと良書だったが、悲しいかなDIの話題はなかった。
(チラッと名前だけ出る程度。)
代わりにサービスをルックアップするコードが記述されていた。
今時どうかと思った。
106デフォルトの名無しさん
2008/09/06(土) 20:42:33107デフォルトの名無しさん
2008/09/06(土) 20:52:30108デフォルトの名無しさん
2008/09/06(土) 21:30:18 スターロジック?
聞いたことねえや
> OOPわかってない奴が書いたOOPっぽいコード
ああ、見てるとイラッと来る
自分も一度は通った道ではあるものの
聞いたことねえや
> OOPわかってない奴が書いたOOPっぽいコード
ああ、見てるとイラッと来る
自分も一度は通った道ではあるものの
109デフォルトの名無しさん
2008/09/07(日) 00:55:05 Struts知ってる俺がS2Strutsを触ったが全然動かない・・・
おまいらコレすっと動いた?
おまいらコレすっと動いた?
110デフォルトの名無しさん
2008/09/07(日) 02:25:30 激しくスレ違い
111デフォルトの名無しさん
2008/09/07(日) 11:46:30112デフォルトの名無しさん
2008/09/07(日) 21:13:24 >>109
ずっとうごいたけど
ずっとうごいたけど
113デフォルトの名無しさん
2008/09/14(日) 21:08:26 DIって、フレームワークを提供する側や、業務パッケージを作成する場合なんか
には有効かもだけど、1から作るような業務アプリではメリット感じない。
大体、1から作るような業務アプリという時点で泥くさいことやらなきゃいけない
ケースが多いし、インターフェースが有効なケースもあんましない。
(パッケージ使用しない時点で、客は泥くさい対応を求めてくる。)
1インターフェースで1パターンだったら、密結合でも疎結合でもどっちゃでもいいん
じゃない。影響極少だし。
まぁ設計力の問題かもしれない。業務アプリでうまく交通整理できた具体例なんかが
あれば、ほんと具体的に教えてほしい。
には有効かもだけど、1から作るような業務アプリではメリット感じない。
大体、1から作るような業務アプリという時点で泥くさいことやらなきゃいけない
ケースが多いし、インターフェースが有効なケースもあんましない。
(パッケージ使用しない時点で、客は泥くさい対応を求めてくる。)
1インターフェースで1パターンだったら、密結合でも疎結合でもどっちゃでもいいん
じゃない。影響極少だし。
まぁ設計力の問題かもしれない。業務アプリでうまく交通整理できた具体例なんかが
あれば、ほんと具体的に教えてほしい。
114デフォルトの名無しさん
2008/09/14(日) 21:11:59 >>113
その業務は未来永劫仕様が変らないの?
その業務は未来永劫仕様が変らないの?
115デフォルトの名無しさん
2008/09/14(日) 21:15:24 こんなわかりやすくて便利なもんがこの評価か・・・VBerを思いだす
116デフォルトの名無しさん
2008/09/14(日) 21:22:13 >>114
そんなことはない。ただ小変更の場合は実装クラス内の変更にとどまる
ことが多い。大きな変更の場合は、設計の根幹を揺るがすようなことが
ままある。実際客にとり、メリットあるのは、大きな変更のほうなん
だが、その場合は残念ながら、DIは無力だと思う。
そんなことはない。ただ小変更の場合は実装クラス内の変更にとどまる
ことが多い。大きな変更の場合は、設計の根幹を揺るがすようなことが
ままある。実際客にとり、メリットあるのは、大きな変更のほうなん
だが、その場合は残念ながら、DIは無力だと思う。
117デフォルトの名無しさん
2008/09/14(日) 21:44:38 正直AOPやDIがJavaの限界に思う。
下位互換にこだわりすぎる言語の宿命だよ。
明らかに無理し過ぎてる。
下位互換にこだわりすぎる言語の宿命だよ。
明らかに無理し過ぎてる。
118デフォルトの名無しさん
2008/09/14(日) 22:02:49 >>115
今はそういうのはPHPerが担ってるよ
今はそういうのはPHPerが担ってるよ
119デフォルトの名無しさん
2008/09/14(日) 23:04:57 一から作るならGuiceあたり使っておけばいい。
JavaEEはJSF+Faceletsを使って、WebBeansは出たら採用する。
正直SpringだのS2だのへの投資は無駄な投資。
JavaEEはJSF+Faceletsを使って、WebBeansは出たら採用する。
正直SpringだのS2だのへの投資は無駄な投資。
120デフォルトの名無しさん
2008/09/14(日) 23:22:56122デフォルトの名無しさん
2008/09/15(月) 15:50:28 業務自体の変更はDIの範疇じゃないと思うが、
業務の本体じゃない横断的な事象を切り出すには便利に使えると思うよ。
ただの道具として利用するレベルでも。
横断的関心事を業務の本体から切り離すってのはまあ、AOPの範疇かもしれんが。
業務の本体じゃない横断的な事象を切り出すには便利に使えると思うよ。
ただの道具として利用するレベルでも。
横断的関心事を業務の本体から切り離すってのはまあ、AOPの範疇かもしれんが。
123デフォルトの名無しさん
2008/09/15(月) 15:56:50 業務プログラムがテンプレートメソッドパターンに落とせないのであれば、
インタフェースベースの設計をする価値はないだろうね。
インタフェースベースの設計をする価値はないだろうね。
124デフォルトの名無しさん
2008/09/15(月) 18:19:23 ?
125デフォルトの名無しさん
2008/09/15(月) 18:23:01 なんらかの業務処理をプログラムに落とし込む必要があって、
それに対してインターフェイスを書かない状況ってのは、ちょっと分からないな。
そもそも、それって Java使う必要あんの?
LLの方が向いてない?
それに対してインターフェイスを書かない状況ってのは、ちょっと分からないな。
そもそも、それって Java使う必要あんの?
LLの方が向いてない?
126デフォルトの名無しさん
2008/09/15(月) 19:10:18 ソフトウェアカスタマイズなら割とある。
127デフォルトの名無しさん
2008/09/15(月) 22:05:04 そりゃ、〜〜業務を1メソッドや1クラスにだらだら書いているなら、
DIなんて何の意味もないだろうさ。
DIなんて何の意味もないだろうさ。
128デフォルトの名無しさん
2008/09/15(月) 22:53:41 何か頭の悪い誇張野郎が沸いてるな。
129デフォルトの名無しさん
2008/09/16(火) 00:12:09 AOPやDIで業務システム作ったけど大した恩恵は受けてない。画面や検索条件。業務ロジックの修正がほとんど。結局LLでやればよかったと思ってる
130デフォルトの名無しさん
2008/09/16(火) 02:18:19 >>129
本質的な部分の修正だけですむのはDIの恩恵を受けてるんじゃないか?
本質的な部分の修正だけですむのはDIの恩恵を受けてるんじゃないか?
131デフォルトの名無しさん
2008/09/16(火) 02:39:07132デフォルトの名無しさん
2008/09/16(火) 02:48:59133デフォルトの名無しさん
2008/09/16(火) 20:40:32134デフォルトの名無しさん
2008/09/16(火) 21:24:30 その「きちんと」を楽にするためにOO言語なりツールがあるわけで。
「楽したい」と考えないエンジニアは碌なもんじゃないと思うんです。
「楽したい」と考えないエンジニアは碌なもんじゃないと思うんです。
135デフォルトの名無しさん
2008/09/16(火) 23:27:14 別にDIとかAOPによって不可能だったことが可能になったわけじゃないんだから。
より楽な、より便利な使える道具ができたってだけのことだろう。
より楽な、より便利な使える道具ができたってだけのことだろう。
136デフォルトの名無しさん
2008/09/17(水) 01:14:46 本質以外のことはやりたくないからどんどん外に出した。
外出ししたオブジェクトをルックアップするコードを書くのも面倒になった。
何使うかだけ書いといて、あとは外から勝手に注入してもらえば楽くね?
これだけだぞ、DIコンテナの本質は。
これがどういう意味を持つか分かる人以外には
どれだけ触っても全くの時間の無駄だ。
外出ししたオブジェクトをルックアップするコードを書くのも面倒になった。
何使うかだけ書いといて、あとは外から勝手に注入してもらえば楽くね?
これだけだぞ、DIコンテナの本質は。
これがどういう意味を持つか分かる人以外には
どれだけ触っても全くの時間の無駄だ。
137デフォルトの名無しさん
2008/09/17(水) 01:45:51 楽くね?
くねくね?
くねくね?
138デフォルトの名無しさん
2008/09/17(水) 05:05:33 DIって普通はリンカが自動的にやってることを、手動で設定してるようなイメージ。
139デフォルトの名無しさん
2008/09/17(水) 12:32:29 退化
140デフォルトの名無しさん
2008/09/17(水) 12:41:16 DIで楽が出来るのはわかってる。学習コストとメリットを天秤にかけた時に
業務アプリで使うのはどうかって話だ。今のspring他の実装はまだ過渡期で、
5年後には設定方法やデファクトのDIツールすら変わってる可能性が
大いにある。Apache Torqueなんてまだ使ってるやついるか?
いたらゴメンね。でメインの開発者がとっくに退社してる場合、
今更Torqueなんてメンテし続けたくねーとか、Apache ECSなんて
jsp出てきた時点で終わってんだろ、とか思う訳じゃない。
それを繰り返したくない。ちょっとファクトリクラス書くのが
楽になる程度の使い方なら、後の人がすぐ追えるようにシンプルな
ファクトリを書いておいたいいんじゃないか、と悩んだ事は何度もある。
いい加減springなら平気だろと思って使ってるわけだけど
業務アプリで使うのはどうかって話だ。今のspring他の実装はまだ過渡期で、
5年後には設定方法やデファクトのDIツールすら変わってる可能性が
大いにある。Apache Torqueなんてまだ使ってるやついるか?
いたらゴメンね。でメインの開発者がとっくに退社してる場合、
今更Torqueなんてメンテし続けたくねーとか、Apache ECSなんて
jsp出てきた時点で終わってんだろ、とか思う訳じゃない。
それを繰り返したくない。ちょっとファクトリクラス書くのが
楽になる程度の使い方なら、後の人がすぐ追えるようにシンプルな
ファクトリを書いておいたいいんじゃないか、と悩んだ事は何度もある。
いい加減springなら平気だろと思って使ってるわけだけど
141デフォルトの名無しさん
2008/09/17(水) 14:07:48 Guiceくらい便利に使って欲しいところだけど、俺の周囲じゃ正直無理だと思った。
設計思想というものが前提的に存在しない層とはJavaは相容れないな。
設計思想というものが前提的に存在しない層とはJavaは相容れないな。
142デフォルトの名無しさん
2008/09/17(水) 14:34:53 開発者の質が悪いからってのも、本末転倒な話だな。
むしろ、低レベルな開発者を排除すべきだと思うんだが。
優秀な人間だけ集めると、開発ペースがメチャメチャ速くなるぞ。
無駄なドキュメントは作らなくてすむし、くだらないバグも仕込まれないし。
むしろ、低レベルな開発者を排除すべきだと思うんだが。
優秀な人間だけ集めると、開発ペースがメチャメチャ速くなるぞ。
無駄なドキュメントは作らなくてすむし、くだらないバグも仕込まれないし。
143デフォルトの名無しさん
2008/09/17(水) 14:37:24 そんなことが簡単に出来たら苦労はないわ
144デフォルトの名無しさん
2008/09/17(水) 14:53:38 100人月とかの開発をやったこと無いんだろう
145デフォルトの名無しさん
2008/09/17(水) 15:02:53 Guiceいいかもと思ってGuiceスレに行ったら泣けてきた。
あんまし使われとらんの?
あんまし使われとらんの?
146デフォルトの名無しさん
2008/09/17(水) 17:15:04 日本人が作ってないからヲチネタが少ないだけ
147デフォルトの名無しさん
2008/09/17(水) 21:51:04148デフォルトの名無しさん
2008/09/17(水) 22:22:50 開発ペースが速くなるのは良いが、人的リスクはどうなるのかね?
少数精鋭だと事故や病気で欠員が出ると途端に回らなくなるが。
後メンテナンスにも「優秀な」人材が必要になったりしないよな?
ノウハウが属人化して「Aさんじゃないと判らない」なんてよく聞く死亡フラグだ。
(もちろん>>147は、そんな奴は優秀とは言わないとか
優秀な人材ならすぐ対応できるとか言うんだろうが)
普通の会社ではどうするかって?
そこそこの能力で替えが効く人間を大勢揃えるのさ。
もちろん、人間の替えが効くようにメジャーな言語や技術を選択して
必要なスキルレベルも最低ランクの人材に合わせる。
これならメンテナンスする人材もすぐ都合がつくしな。
100人月とかの開発で必要な「優秀な」人材ってのは、
こういった面も見据えて適切な技術を選択したり
必要であれば独自フレームワークを設計したり
開発チーム全体のスキルレベルの底上げを行ったりできる開発者だろな。
なんて超アタリマエな事を偉そうに語ってすまん。
少数精鋭だと事故や病気で欠員が出ると途端に回らなくなるが。
後メンテナンスにも「優秀な」人材が必要になったりしないよな?
ノウハウが属人化して「Aさんじゃないと判らない」なんてよく聞く死亡フラグだ。
(もちろん>>147は、そんな奴は優秀とは言わないとか
優秀な人材ならすぐ対応できるとか言うんだろうが)
普通の会社ではどうするかって?
そこそこの能力で替えが効く人間を大勢揃えるのさ。
もちろん、人間の替えが効くようにメジャーな言語や技術を選択して
必要なスキルレベルも最低ランクの人材に合わせる。
これならメンテナンスする人材もすぐ都合がつくしな。
100人月とかの開発で必要な「優秀な」人材ってのは、
こういった面も見据えて適切な技術を選択したり
必要であれば独自フレームワークを設計したり
開発チーム全体のスキルレベルの底上げを行ったりできる開発者だろな。
なんて超アタリマエな事を偉そうに語ってすまん。
149デフォルトの名無しさん
2008/09/17(水) 22:39:27 長いから1段目しか見てないが、
うちも少数精鋭で立て続けに二人居なくなって
あばばばばってなったよw
うちも少数精鋭で立て続けに二人居なくなって
あばばばばってなったよw
150デフォルトの名無しさん
2008/09/17(水) 22:50:30 優秀な人間だけ30人も集められるわけがなかろう。
151デフォルトの名無しさん
2008/09/17(水) 22:51:49 あいや上は無視してorz
まいずれにしても優秀な人間だけ集めるってのはやっぱり現実には無理がある。
優秀な人間は各プロジェクトに分散させるもんだからな。
まいずれにしても優秀な人間だけ集めるってのはやっぱり現実には無理がある。
優秀な人間は各プロジェクトに分散させるもんだからな。
152デフォルトの名無しさん
2008/09/17(水) 23:08:57 30人月って、3人x10ヶ月のことじゃないのか。
153デフォルトの名無しさん
2008/09/17(水) 23:10:32 30人月だと普通は5人×6ヶ月くらいじゃね?
154デフォルトの名無しさん
2008/09/17(水) 23:17:40 今の現場は人ばかりいてダラダラ1000人月は消化してるな。
プロジェクト管理?
決まってるじゃないか、エクセルだよ!
プロジェクト管理?
決まってるじゃないか、エクセルだよ!
155デフォルトの名無しさん
2008/09/18(木) 00:19:09 知らないうちにヘンなインスタンスと会話してたりするとコワイよなぁ・・・
DIコンテナってある意味、人間関係の希薄な現代社会みたい。
DIコンテナってある意味、人間関係の希薄な現代社会みたい。
156デフォルトの名無しさん
2008/09/18(木) 00:41:51 妹だと思ってお尻なでてたらお袋だった、みたいな?
157デフォルトの名無しさん
2008/09/18(木) 00:52:58 >>148
欠員リスクはあるね。そこまで大きな仕事になると受けられないな。
で、引継ぎのほうなんだけど、運用保守要員のトレーニングも引き受けたり、
社内標準化と込みでやったりする。それに、そもそも特殊な技術を使うわけでもないし。
あと、俺の主張は「無能は使うな」であって、「優秀な人だけでやれ」ではないよ。
欠員リスクはあるね。そこまで大きな仕事になると受けられないな。
で、引継ぎのほうなんだけど、運用保守要員のトレーニングも引き受けたり、
社内標準化と込みでやったりする。それに、そもそも特殊な技術を使うわけでもないし。
あと、俺の主張は「無能は使うな」であって、「優秀な人だけでやれ」ではないよ。
158デフォルトの名無しさん
2008/09/18(木) 11:03:38 それすらも難しいのが結構現実…
159デフォルトの名無しさん
2008/09/18(木) 17:50:47 ホントホント
2chに書き込んでるような俺らみたいなヤカラでさえ、
より良い設計に興味があるだけマシで
普通のPGは会社引けたら知らんぷりだもんな
2chに書き込んでるような俺らみたいなヤカラでさえ、
より良い設計に興味があるだけマシで
普通のPGは会社引けたら知らんぷりだもんな
160デフォルトの名無しさん
2008/09/18(木) 20:43:51 まあ中にはPGには余計な知恵をつけて欲しくないとかで
DIコンテナとかの話するだけで目の敵にするような奴もいるしな。
…それはそれで正しいのか?そうは思いたくないが。
DIコンテナとかの話するだけで目の敵にするような奴もいるしな。
…それはそれで正しいのか?そうは思いたくないが。
161デフォルトの名無しさん
2008/09/18(木) 20:56:26 作業者(制御構造を書くだけ一般PG)にまでDIなんて意識させるか?
DIなんて裏方だし、骨組み作る人間だけが意識してれば良いじゃん。
DIなんて裏方だし、骨組み作る人間だけが意識してれば良いじゃん。
162デフォルトの名無しさん
2008/09/18(木) 21:06:49 そしてさらにPGの二極化が進むのであった。
163デフォルトの名無しさん
2008/09/18(木) 21:19:46 日本って人材に甘すぎるのか、分からない分からないを繰り返して
残業しまくって成果物がゼロに近い奴が首にならないんだよな。
しばしば年収を意識しちゃって鬱になるよw
>>160
費用対効果だわな。
DIはOJTの範囲外なのでちょっと投資する必要がある。
残業しまくって成果物がゼロに近い奴が首にならないんだよな。
しばしば年収を意識しちゃって鬱になるよw
>>160
費用対効果だわな。
DIはOJTの範囲外なのでちょっと投資する必要がある。
164デフォルトの名無しさん
2008/09/19(金) 00:43:31 >>161
実装者が理解できてないままだと
interface 使わないコードを平気で持ってくるわけだが。
お前さんのレビューのコストがバカになんねえよ。
実例挙げて教育した方が絶対早い。
分からないやつは切り捨てたらいいから。
実装者が理解できてないままだと
interface 使わないコードを平気で持ってくるわけだが。
お前さんのレビューのコストがバカになんねえよ。
実例挙げて教育した方が絶対早い。
分からないやつは切り捨てたらいいから。
165デフォルトの名無しさん
2008/09/19(金) 20:35:47166デフォルトの名無しさん
2008/09/19(金) 20:46:29 クラスの追加が承認制というようなこともするけどね。
レイヤ構成と機能毎の箱だけ用意しておいて、後はそこに
処理を書いてください、みたいな。
馬鹿にしているとも思うけど、悲しいかな、そうしないと
最低限の品質を保てないということもある。
レイヤ構成と機能毎の箱だけ用意しておいて、後はそこに
処理を書いてください、みたいな。
馬鹿にしているとも思うけど、悲しいかな、そうしないと
最低限の品質を保てないということもある。
167デフォルトの名無しさん
2008/09/19(金) 23:10:35 >>166
それやっちゃうと3000行のメソッドや10000行のクラスが湧いて出たりしない?
そうならないように適切に分割したクラスやインターフェース書いて渡すの?
でもそういうのが判断できるとこまで設計したら、
中身も自分で書いた方がはるかに少ない工数で作れるよね……。
それやっちゃうと3000行のメソッドや10000行のクラスが湧いて出たりしない?
そうならないように適切に分割したクラスやインターフェース書いて渡すの?
でもそういうのが判断できるとこまで設計したら、
中身も自分で書いた方がはるかに少ない工数で作れるよね……。
168デフォルトの名無しさん
2008/09/19(金) 23:48:26 3000行のメソッドや10000行のクラスはさすがに無い。
レイヤ、機能までをそれなりに分割したものを渡すけど、
それでなくても今時3000行のメソッドは無いだろう(゚д゚ )?
むしろ気をつける必要があるのは、重複する処理が作られること。
これはチェックして交通整理する必要有り。
工数というか効率に関しては、少数精鋭の方が良いのは勿論だけど、
1人で単位時間当たり1の成果を出すのではなく、10人かき集めて
単位時間当たり2の成果(効率は1/5)を求められることもある(´・ω・`)
レイヤ、機能までをそれなりに分割したものを渡すけど、
それでなくても今時3000行のメソッドは無いだろう(゚д゚ )?
むしろ気をつける必要があるのは、重複する処理が作られること。
これはチェックして交通整理する必要有り。
工数というか効率に関しては、少数精鋭の方が良いのは勿論だけど、
1人で単位時間当たり1の成果を出すのではなく、10人かき集めて
単位時間当たり2の成果(効率は1/5)を求められることもある(´・ω・`)
169デフォルトの名無しさん
2008/09/20(土) 11:51:27 優秀な人とそうでない人の差は生産性だけじゃない。
実際生産性自体は大きなな差はないこともある。
特に業務処理みたいなのの実装では。
しかし品質や保守性にはかなり差が出る。
業務処理とかじゃなくてもっと基盤よりの実装だったりして難度が高い部分だと
生産性にも品質にも保守性にもそれを使う側への影響にも大きな差がでる。
そもそも優秀じゃないと出来ないものもある。
実際生産性自体は大きなな差はないこともある。
特に業務処理みたいなのの実装では。
しかし品質や保守性にはかなり差が出る。
業務処理とかじゃなくてもっと基盤よりの実装だったりして難度が高い部分だと
生産性にも品質にも保守性にもそれを使う側への影響にも大きな差がでる。
そもそも優秀じゃないと出来ないものもある。
170デフォルトの名無しさん
2008/09/20(土) 12:27:40 >>168
1メソッド3000行はさすがに見たことないけど。
1000行のメソッドAの一部処理を別の1000行のメソッドBにしてあり、
メソッドBの一部処理をまた別の1000行のメソッドCにしてある、とかなら普通に見る。
ちなみに10000行どころか70000行程度のクラスまでなら普通に見る。
VB.NETのForm継承クラスに業務処理まで突っ込んだやつ。
1メソッド3000行はさすがに見たことないけど。
1000行のメソッドAの一部処理を別の1000行のメソッドBにしてあり、
メソッドBの一部処理をまた別の1000行のメソッドCにしてある、とかなら普通に見る。
ちなみに10000行どころか70000行程度のクラスまでなら普通に見る。
VB.NETのForm継承クラスに業務処理まで突っ込んだやつ。
171デフォルトの名無しさん
2008/09/20(土) 14:07:32 まじかよ
172デフォルトの名無しさん
2008/09/20(土) 15:21:57 ま〜なんだ。
DIの有用さが理解出来ない奴は、これまでテストをきちんとやって来なかった奴だな
DIの有用さが理解出来ない奴は、これまでテストをきちんとやって来なかった奴だな
173デフォルトの名無しさん
2008/09/20(土) 18:30:26 組織を改善したければOJTという思考停止剤を経営者から奪わないといけない。
174デフォルトの名無しさん
2008/09/20(土) 22:18:01 テスト以外に何かに使えねえかなあ。>DI
175デフォルトの名無しさん
2008/09/20(土) 23:12:38 疎結合最高だよな、いやまじで。な人と
疎結合って何?食えるの?な人の振り分けに使える。
インターフェースと実装は分けるだろ、普通。な人と
実装継承最高!オブジェクト指向って継承しまくることだろ?な人の振り分けに使える。
ステートレスが基本だが場合によってはステートフルなロジックも必要か、な人と
メンバ変数ってクラス内グローバルで最強だよな。スレッドセーフ?わけわかんねえ横文字口走るなよ、な人の振り分けに使える。
100行超えるとキモいからクラスなりメソッドなりにして意味のある名前付けようぜ、な人と
3000行超えるメソッドや10000行超えるクラス作っても動けばそれでいいだろ、な人の振り分けに使える。
なんでコードをコピペすんだよ。3回同じこと書いたら首吊って死ね!な人と
コピペのどこが悪いんだよ、動けばそれでいいだろ、このタコが!な人の振り分けに使える。
なんでテストコード書かないの?馬鹿なの?な人と
テスト書く時間でコード書けばいいでしょ?早く帰りたいでしょ?な人の振り分けに使える。
用途はたくさんあるぞ。
疎結合って何?食えるの?な人の振り分けに使える。
インターフェースと実装は分けるだろ、普通。な人と
実装継承最高!オブジェクト指向って継承しまくることだろ?な人の振り分けに使える。
ステートレスが基本だが場合によってはステートフルなロジックも必要か、な人と
メンバ変数ってクラス内グローバルで最強だよな。スレッドセーフ?わけわかんねえ横文字口走るなよ、な人の振り分けに使える。
100行超えるとキモいからクラスなりメソッドなりにして意味のある名前付けようぜ、な人と
3000行超えるメソッドや10000行超えるクラス作っても動けばそれでいいだろ、な人の振り分けに使える。
なんでコードをコピペすんだよ。3回同じこと書いたら首吊って死ね!な人と
コピペのどこが悪いんだよ、動けばそれでいいだろ、このタコが!な人の振り分けに使える。
なんでテストコード書かないの?馬鹿なの?な人と
テスト書く時間でコード書けばいいでしょ?早く帰りたいでしょ?な人の振り分けに使える。
用途はたくさんあるぞ。
176デフォルトの名無しさん
2008/09/21(日) 09:43:26 インタフェースを実装したクラスを継承してる奴らは多いけどな。
177デフォルトの名無しさん
2008/09/23(火) 01:45:47 >ステートレスが基本だが場合によってはステートフルなロジックも必要か
自分も、業務ロジッククラスであっても値としてのプロパティを持たす事は少ないんだけど
(基本的にインターフェースだけプロパティに持たす)
これって普通なの?
状態を持たないクラスばかりであまりオブジェクト指向っぽくないかなと思ってた
自分も、業務ロジッククラスであっても値としてのプロパティを持たす事は少ないんだけど
(基本的にインターフェースだけプロパティに持たす)
これって普通なの?
状態を持たないクラスばかりであまりオブジェクト指向っぽくないかなと思ってた
178デフォルトの名無しさん
2008/09/23(火) 02:17:20 一般的に対話型アプリは重厚なセッションを持つものだよ。
Webアプリがそうなるのはオブジェクトライフサイクルの都合かな。
スケーラビリティの都合と言い換えてもいいと思う。
Webアプリがそうなるのはオブジェクトライフサイクルの都合かな。
スケーラビリティの都合と言い換えてもいいと思う。
179デフォルトの名無しさん
2008/09/23(火) 06:00:48 >>175
DI の問題点というのはまさにそこで、
その振り分けを生き延びた精鋭にしか保守できないシステムを作りまくるわけですよね。
業務システムの開発という場面では、保守担当者を選ぶコードなど糞です。
DI の問題点というのはまさにそこで、
その振り分けを生き延びた精鋭にしか保守できないシステムを作りまくるわけですよね。
業務システムの開発という場面では、保守担当者を選ぶコードなど糞です。
180デフォルトの名無しさん
2008/09/23(火) 12:02:46181デフォルトの名無しさん
2008/09/23(火) 12:17:25182デフォルトの名無しさん
2008/09/23(火) 12:26:54 OOP以前に、>>175で振り落とされるような人間はまともな構造化分析も出来ないだろうし。
業務による垂直方向の機能分割と、レイヤによる水辺方向の機能分割。
DIってのはそれを補助する仕組みにすぎないんだから。
あって困るものでないというものであって、精鋭でないと使えないなんていうのは
大きくな勘違いだと思うよ。
それが理解できないなら、煽りでなく、職業を変えた方が良いと思う。
業務による垂直方向の機能分割と、レイヤによる水辺方向の機能分割。
DIってのはそれを補助する仕組みにすぎないんだから。
あって困るものでないというものであって、精鋭でないと使えないなんていうのは
大きくな勘違いだと思うよ。
それが理解できないなら、煽りでなく、職業を変えた方が良いと思う。
183デフォルトの名無しさん
2008/09/23(火) 12:43:56 DIのインフラを作ってしまえば後は誰が保守してもかまわんでしょ
初期設計にまともなプログラマが居れば良いだけ。
初期設計にまともなプログラマが居れば良いだけ。
184デフォルトの名無しさん
2008/09/23(火) 12:55:21 >>182
俺の言いたいこと全部言ってくれて助かったんだが、
>それが理解できないなら、煽りでなく、職業を変えた方が良いと思う。
これ実践すると、日本のプログラマ人口は1/100以下になるよな。多分。
俺の言いたいこと全部言ってくれて助かったんだが、
>それが理解できないなら、煽りでなく、職業を変えた方が良いと思う。
これ実践すると、日本のプログラマ人口は1/100以下になるよな。多分。
185デフォルトの名無しさん
2008/09/23(火) 12:59:34 まあ理解力うんぬんより「OOP勉強するくらいなら業務知識仕入れるわ」な奴のが一般的だしな。
186デフォルトの名無しさん
2008/09/23(火) 13:50:10 PGが業務知識云々を言い出すと負け犬みたいなイメージがあるな。
187デフォルトの名無しさん
2008/09/23(火) 14:08:12 >>186
いや、それはむしろそっちの方が正しいだろ。
一般的な業務アプリの世界では、99/100の作業者PGには
テクニカルな事よりも業務知識を覚えさせて。
アーキテクチャとかは1/100な人間が決めて、作業者PGは
その枠組みの中で制御構造だけ書いていた方が効率が良い
…っというか、現実的ではあるから。
テクニカルな仕事がしたいのであれば、インフラ系、
製品開発、Web系、組込み系へいくべきだろう。
いや、それはむしろそっちの方が正しいだろ。
一般的な業務アプリの世界では、99/100の作業者PGには
テクニカルな事よりも業務知識を覚えさせて。
アーキテクチャとかは1/100な人間が決めて、作業者PGは
その枠組みの中で制御構造だけ書いていた方が効率が良い
…っというか、現実的ではあるから。
テクニカルな仕事がしたいのであれば、インフラ系、
製品開発、Web系、組込み系へいくべきだろう。
188デフォルトの名無しさん
2008/09/23(火) 15:39:34189デフォルトの名無しさん
2008/09/23(火) 15:45:40 ないない。
190デフォルトの名無しさん
2008/09/23(火) 16:01:27 まあ、下の方の人間が多少減ったところで
結果として出る成果に違いは無いとも思うし、
居ても居なくても同じどころか、
むしろ居ない方が良い人間が居るのにも
同意はするが。
でも、矢面に立って無駄死にしてくれる人間が居ないと、
こっちにまで変なおはちが回ってくるので、
まあ、居ても良いよというか、そんなかんじかな。
結果として出る成果に違いは無いとも思うし、
居ても居なくても同じどころか、
むしろ居ない方が良い人間が居るのにも
同意はするが。
でも、矢面に立って無駄死にしてくれる人間が居ないと、
こっちにまで変なおはちが回ってくるので、
まあ、居ても良いよというか、そんなかんじかな。
191デフォルトの名無しさん
2008/09/23(火) 21:45:03 漏れは普通(?)に「悪貨は良貨を駆逐する」と思うが。
業務知識も知らないよりは知っていた方がいいだろうけど、
それは最低限のエンジニアとしての力量があってから初めて役に立つのであって、
上(アーキテクトする人)の言う事も理解できんアフォが「業務知識」とか言うと胡散臭ぇ。
業務知識も知らないよりは知っていた方がいいだろうけど、
それは最低限のエンジニアとしての力量があってから初めて役に立つのであって、
上(アーキテクトする人)の言う事も理解できんアフォが「業務知識」とか言うと胡散臭ぇ。
192デフォルトの名無しさん
2008/09/23(火) 21:55:39 アーキテクトが「上」だとか、さらっと言っちゃう?
193デフォルトの名無しさん
2008/09/23(火) 22:01:51 アーキテクトはむしろ「横」。
194デフォルトの名無しさん
2008/09/23(火) 22:22:03 正直、PG程度に求められる業務知識なんて、
そんなたいしたもんじゃないけどな。
誰でもしばらくやっていれば身につく程度の内容で。
本当に業務知識があると思うのなら、
PGなんかやめて、それ専門で飯を食ったほうが
良いと思うし。
35歳で定年になったり、PG→SE(笑)→無能なPMと
ジョブチェンジして、現場に迷惑をかけたい奴は
技術より業務知識でもなんでも良いと思うが。
よく、転職情報とかにも業務知識がある人間が
不足しているみたいな事が書いてあるけど、
俺の感覚としては、本当に足りてないのは、
技術的なバックボーンを持って、意志決定できる
人間だと思うがな。
そんなたいしたもんじゃないけどな。
誰でもしばらくやっていれば身につく程度の内容で。
本当に業務知識があると思うのなら、
PGなんかやめて、それ専門で飯を食ったほうが
良いと思うし。
35歳で定年になったり、PG→SE(笑)→無能なPMと
ジョブチェンジして、現場に迷惑をかけたい奴は
技術より業務知識でもなんでも良いと思うが。
よく、転職情報とかにも業務知識がある人間が
不足しているみたいな事が書いてあるけど、
俺の感覚としては、本当に足りてないのは、
技術的なバックボーンを持って、意志決定できる
人間だと思うがな。
195デフォルトの名無しさん
2008/09/23(火) 22:33:43 なんかスレ違いな話題が増えてきたけど、「業務知識」を言い出すPGは
信用しない方がいい、ってのは共通認識みたいだな。
信用しない方がいい、ってのは共通認識みたいだな。
196デフォルトの名無しさん
2008/09/24(水) 11:24:48 そんな極論
修正してやる!
修正してやる!
197デフォルトの名無しさん
2008/09/24(水) 11:28:12 PGで優秀じゃなかったやつは大概ロクなSE/PMにならないけど
時々いるよね、顧客との折衝がうまくてSE向きの人とか、
人間関係調整するのがうまくてPM向きの人とか。
例え人差し指だけでキーボードを打ってても
時々いるよね、顧客との折衝がうまくてSE向きの人とか、
人間関係調整するのがうまくてPM向きの人とか。
例え人差し指だけでキーボードを打ってても
198デフォルトの名無しさん
2008/09/24(水) 11:29:02 ごめんスレとなんの関係もなかった
199デフォルトの名無しさん
2008/09/24(水) 20:43:18 プログラムができないから、業務知識とか言い出す奴は困りものよね。
顧客の言うことをオウム返しするだけの無意味な存在になったり、
技術的背景が無いせいでにアホな設計をして、無駄な工数をかけて
デスマを引き起こしたりと、ろくなもんじゅない。
顧客と技術がわかる人間が差し向かいでやったときの生産性の高さを
一度経験してしまうと、そういうのって本当に馬鹿らしくてやって
いられない。
さらにスレ違いすまそ。
顧客の言うことをオウム返しするだけの無意味な存在になったり、
技術的背景が無いせいでにアホな設計をして、無駄な工数をかけて
デスマを引き起こしたりと、ろくなもんじゅない。
顧客と技術がわかる人間が差し向かいでやったときの生産性の高さを
一度経験してしまうと、そういうのって本当に馬鹿らしくてやって
いられない。
さらにスレ違いすまそ。
200デフォルトの名無しさん
2008/09/24(水) 22:05:12 なんだこりゃ愚痴スレか。
偉そうにスレ違いな会話を続けるくらいだったらDIをもっと広める方法でも語ってくれよ。
業務知識とか言い出すPG(よほど恨みでもあるのか?)の説得方法とかさ。
偉そうにスレ違いな会話を続けるくらいだったらDIをもっと広める方法でも語ってくれよ。
業務知識とか言い出すPG(よほど恨みでもあるのか?)の説得方法とかさ。
201デフォルトの名無しさん
2008/09/24(水) 22:15:02 DIコンテナ自体はもう十分コモディティ化していると思う。
コンテナ自体を布教したりDependency Injectionパターンを
どうこう語るよりも、DIを使ったプロダクトを盛り上げた方が
嬉しいんじゃないかな。
コンテナ自体を布教したりDependency Injectionパターンを
どうこう語るよりも、DIを使ったプロダクトを盛り上げた方が
嬉しいんじゃないかな。
202デフォルトの名無しさん
2008/09/25(木) 01:19:27 というより初期開発にアーキテクト役を置こうとしない組織をなんとかすべき。
いったんDIを無理矢理導入すれば、後は使い込むにつれ説明不要で依存し出す。
いったんDIを無理矢理導入すれば、後は使い込むにつれ説明不要で依存し出す。
203デフォルトの名無しさん
2008/09/25(木) 01:25:12 確かにキラーアプリがあると嬉しいところなんだが。
情熱と時間がないと無理よね。俺には無理。
情熱と時間がないと無理よね。俺には無理。
204デフォルトの名無しさん
2008/09/25(木) 01:34:19 >いったんDIを無理矢理導入すれば、後は使い込むにつれ説明不要で依存し出す。
無理。
オブジェクト指向言語使っても構造化以前の
スパゲティコード書くやついるでしょ。あれと同じ。
DI使ってるはずなのに、オブジェクトを名前で探し出してたり、
あるいはなんでもかんでも new してたりするから。
あなたが然るべき立場の人間で、現場でそれを強制するだけの発言力があれば話は別。
無理。
オブジェクト指向言語使っても構造化以前の
スパゲティコード書くやついるでしょ。あれと同じ。
DI使ってるはずなのに、オブジェクトを名前で探し出してたり、
あるいはなんでもかんでも new してたりするから。
あなたが然るべき立場の人間で、現場でそれを強制するだけの発言力があれば話は別。
205デフォルトの名無しさん
2008/09/25(木) 01:42:50 OO言語=オブジェクト内グローバル変数の持てる言語
という導入から入っても俺は迷うことなくDIまで辿り着いたなぁ。
保守思考が高いか否かで、個人差が出るのかなと思ってる。
という導入から入っても俺は迷うことなくDIまで辿り着いたなぁ。
保守思考が高いか否かで、個人差が出るのかなと思ってる。
206デフォルトの名無しさん
2008/09/27(土) 01:32:33 実際のところ、仕事で何か使ってる?
Springは「困ったら英語のドキュメントを読む人」でなければ使えない
Seasarは「困ったらソースコードを読む人」でなければ使えない
という印象。
少なくとも、チームリーダーがしっかりしてるレベルの部隊でないと
現状ではどちらも厳しいと思うのだが。
Springは「困ったら英語のドキュメントを読む人」でなければ使えない
Seasarは「困ったらソースコードを読む人」でなければ使えない
という印象。
少なくとも、チームリーダーがしっかりしてるレベルの部隊でないと
現状ではどちらも厳しいと思うのだが。
207デフォルトの名無しさん
2008/09/27(土) 01:44:44 設定の外部化が善という宗教
記述量の削減が善という宗教
記述量の削減が善という宗教
208デフォルトの名無しさん
2008/09/27(土) 04:07:26 >>206
それくらいできない奴は、いなくなった方が楽になる
それくらいできない奴は、いなくなった方が楽になる
209デフォルトの名無しさん
2008/09/27(土) 07:26:39210デフォルトの名無しさん
2008/09/27(土) 08:15:02 それくらいもできなくて、できるようになろうとしない奴らは
それですむ仕事をすればいいのに、なんで開発者になるんだろうか?
それですむ仕事をすればいいのに、なんで開発者になるんだろうか?
211デフォルトの名無しさん
2008/09/27(土) 09:33:43 まあダメダメSIer だと、良いプロジェクト == 儲かるプロジェクト == Hello World Javaモンキー100匹突っ込めるプロジェクト
だったりするんで、実は心の奥底から生産性なんか求めてなかったりする。
組織力ってのも Javaモンキー100匹集められるか否か、ただそれだけだったりもする。
だったりするんで、実は心の奥底から生産性なんか求めてなかったりする。
組織力ってのも Javaモンキー100匹集められるか否か、ただそれだけだったりもする。
212デフォルトの名無しさん
2008/09/27(土) 10:18:41 なるほど、それに浸かりきったバカが自分のバカさすら忘れて
>>209みたいなことを言うんだね
>>209みたいなことを言うんだね
213デフォルトの名無しさん
2008/09/27(土) 15:50:54 なぜすぐ煽り合いになるのか?
214デフォルトの名無しさん
2008/09/27(土) 16:14:50 だってここ2chだし
215デフォルトの名無しさん
2008/09/27(土) 19:28:29 むしろ本当の少数精鋭チームならJava使わないだろもう
216デフォルトの名無しさん
2008/09/27(土) 20:37:02 むしろ本当の少数精鋭チームならDI使わないだろもう
217デフォルトの名無しさん
2008/09/27(土) 20:38:44 逆々
218デフォルトの名無しさん
2008/09/27(土) 20:50:31 Javaを使っていないのであれば、DIを使っていなくてもおかしくは無いが
219デフォルトの名無しさん
2008/09/27(土) 20:55:15 spring以外に選択肢が無いのが問題
s2はhackerのオモチャ
s2はhackerのオモチャ
220デフォルトの名無しさん
2008/09/27(土) 21:01:51 guiceは?
221デフォルトの名無しさん
2008/09/27(土) 21:03:38 藁
222デフォルトの名無しさん
2008/09/28(日) 18:56:38223デフォルトの名無しさん
2008/09/28(日) 19:34:28 Seasar2は慣れればサクサクなのだろうがそこまでの道程は結構険しい
問題なのは、真剣に学習コストをかけて展開するほど
今後長持ちするとは思われていないところじゃないかな
問題なのは、真剣に学習コストをかけて展開するほど
今後長持ちするとは思われていないところじゃないかな
224デフォルトの名無しさん
2008/09/28(日) 19:36:44 一部のローカルグループのサークル活動に
人件費を裂くような馬鹿はいないだろ。
うちはWebBeansがJavaEEに載っかったら、
without EJBな連中とは決別する予定。
人件費を裂くような馬鹿はいないだろ。
うちはWebBeansがJavaEEに載っかったら、
without EJBな連中とは決別する予定。
225デフォルトの名無しさん
2008/09/28(日) 19:49:13 そのサークルの人、みんな飽きるのが早いからね…
仕事ではリスクが高くて採用できない
(請負で作っちゃって納品ハイサヨナラなPJなら採用できるのはナイショ)
仕事ではリスクが高くて採用できない
(請負で作っちゃって納品ハイサヨナラなPJなら採用できるのはナイショ)
226デフォルトの名無しさん
2008/09/28(日) 20:29:42 Javaはそういうのはまだマシな部類だと思うけどなー。
COBOLなんか大昔の極一部の俺流フレームワークが神扱いされてるから・・・。
それに比べればSeasar系はまだマシだろう。
COBOLなんか大昔の極一部の俺流フレームワークが神扱いされてるから・・・。
それに比べればSeasar系はまだマシだろう。
227デフォルトの名無しさん
2008/09/28(日) 20:40:46 タイミングと内容から言って本人による宣伝なのかなあ
キモ
キモ
228デフォルトの名無しさん
2008/09/29(月) 02:30:39 >>224
without EJBっていつの時代だよ
without EJBっていつの時代だよ
229デフォルトの名無しさん
2008/09/29(月) 20:12:09 >>226
自分より下を見てまだマシだ安心する訳ですね。
自分より下を見てまだマシだ安心する訳ですね。
230デフォルトの名無しさん
2008/09/29(月) 20:46:28 >>228
ロッド・ジョンソンは今でもwithout EJBだよ
ロッド・ジョンソンは今でもwithout EJBだよ
231デフォルトの名無しさん
2008/09/30(火) 00:56:51 声が大きいのはひが氏だろ・・
232デフォルトの名無しさん
2008/09/30(火) 01:33:11 >>230
もうロッドのいうことを無条件に賛同してるやつはいないだろ。
もうロッドのいうことを無条件に賛同してるやつはいないだろ。
233デフォルトの名無しさん
2008/09/30(火) 01:55:47 とりあえずよりよいプログラムを目指してここで情報収集してる
少数派がいがみあってもしょうがない
少数派がいがみあってもしょうがない
234デフォルトの名無しさん
2008/10/02(木) 07:33:34 こんだけ盛り上がるってことはまだまだ微妙なんだろうな
seasarも全然さくさくじゃねーしなw
seasarも全然さくさくじゃねーしなw
235デフォルトの名無しさん
2008/10/19(日) 21:03:33 Springどこいったよw
236名無し募集中。。。
2008/10/20(月) 01:28:40 SAStrutsかなり最強だと思うけどなー
DIとは関係ない部分でだけど
DIとは関係ない部分でだけど
237デフォルトの名無しさん
2008/10/20(月) 03:18:26 DIと関係ある話してくれよ
238名無し募集中。。。
2008/10/20(月) 03:30:53 DIを意識させないようにしてあるって所でいいなってさ
239デフォルトの名無しさん
2008/10/20(月) 06:56:59 SAStrutsはSeaserに依存しまくりでしょ?
SAStrutsをパクってコンテナに依存しないStruts拡張を作るのが吉。
SAStrutsをパクってコンテナに依存しないStruts拡張を作るのが吉。
240デフォルトの名無しさん
2008/10/20(月) 07:14:32 Sersarに依存してたらなんか悪いことあるのか?
Strutsに依存してることはOKなのか?
Strutsに依存してることはOKなのか?
241デフォルトの名無しさん
2008/10/20(月) 07:47:49 本人が前にこういう事を言っていたけど。
ttp://d.hatena.ne.jp/higayasuo/20080613/1213326209
まあ、S2でいい人は別にSAStrutsで良いんじゃね。
ttp://d.hatena.ne.jp/higayasuo/20080613/1213326209
まあ、S2でいい人は別にSAStrutsで良いんじゃね。
242デフォルトの名無しさん
2008/10/20(月) 07:53:13 いまやSpring死亡してS2浮上中だけどな
今はその時とは事情が全く違う
今はその時とは事情が全く違う
243デフォルトの名無しさん
2008/10/20(月) 11:44:06 いやあのサポートポリシーはコミュニティが黙ってないだろうと思ったら
あっさり変更したじゃないか。springはまだまだ死亡しないだろ。
あっさり変更したじゃないか。springはまだまだ死亡しないだろ。
244デフォルトの名無しさん
2008/10/20(月) 13:24:25 よくわからんけど、プロダクトがコンテナに依存して
嬉しいことってあるの?
プロダクトを作る側ではなくて、使う側の話だけど。
非依存や切り替え可能にできるなら、その方が良くね?
特にSpringのゴタゴタとか見ていると。
T2はコンテナ非依存とか言ってるけどさ。よくわからんけど、プロダクトがコンテナに依存して
嬉しいことってあるの?
プロダクトを作る側ではなくて、使う側の話だけど。
非依存や切り替え可能にできるなら、その方が良くね?
特にSpringのゴタゴタとか見ていると。
T2はコンテナ非依存とか言ってるけどさ。
嬉しいことってあるの?
プロダクトを作る側ではなくて、使う側の話だけど。
非依存や切り替え可能にできるなら、その方が良くね?
特にSpringのゴタゴタとか見ていると。
T2はコンテナ非依存とか言ってるけどさ。よくわからんけど、プロダクトがコンテナに依存して
嬉しいことってあるの?
プロダクトを作る側ではなくて、使う側の話だけど。
非依存や切り替え可能にできるなら、その方が良くね?
特にSpringのゴタゴタとか見ていると。
T2はコンテナ非依存とか言ってるけどさ。
245デフォルトの名無しさん
2008/10/20(月) 16:41:54 大事なことだから・・・・?
246デフォルトの名無しさん
2008/10/20(月) 20:04:47 それこそ使う側だと選択肢が少ない方が脳を使わなくて済むと言う
メリットがあると言えなくもないが。
むしろ、作る側が非依存で切り替え可能だと、影響調査やバージョンの互換性
やらテスト項目がてんこ盛りで泣けてくるとだろうし。
メリットがあると言えなくもないが。
むしろ、作る側が非依存で切り替え可能だと、影響調査やバージョンの互換性
やらテスト項目がてんこ盛りで泣けてくるとだろうし。
247デフォルトの名無しさん
2008/10/20(月) 20:59:50248デフォルトの名無しさん
2008/10/20(月) 21:13:31 コンテナに依存して、その機能をフルに使うプロダクトを作るも良し。
別にコンテナ固有の処理に依存する必要もないので、コンテナの部分を
抽象化して、切り替え可能にしたプロダクトを作っても良し。
コンテナに依存しているプロダクトを別のコンテナと使いたいので、
そのプロダクトのコピー版を作っても良し。
別にコンテナ固有の処理に依存する必要もないので、コンテナの部分を
抽象化して、切り替え可能にしたプロダクトを作っても良し。
コンテナに依存しているプロダクトを別のコンテナと使いたいので、
そのプロダクトのコピー版を作っても良し。
249デフォルトの名無しさん
2008/11/01(土) 16:39:33 s2がやってるような処理は、プリプロセッサレベルで
dicon→javaのコード変換としてやってもらって、
後は普通にseasar2要らずでコンパイル→実行
みたいな枠組みは作れないのかなあ…
使う側としてはその方が嬉しいんだけどね。
プロダクトよりもseasar2の耐用年限を気にしないといけない今の状況だとチョット
dicon→javaのコード変換としてやってもらって、
後は普通にseasar2要らずでコンパイル→実行
みたいな枠組みは作れないのかなあ…
使う側としてはその方が嬉しいんだけどね。
プロダクトよりもseasar2の耐用年限を気にしないといけない今の状況だとチョット
250デフォルトの名無しさん
2008/11/01(土) 17:19:13 自分で作ればいいじゃない
251デフォルトの名無しさん
2008/11/01(土) 18:02:03 作れるなら作ってるさ
252デフォルトの名無しさん
2008/11/01(土) 19:25:38 dicon→Javaで生成したコードをメンテするよりも、Seasar2自体のコードをメンテしたほうが楽だと思われる。
253デフォルトの名無しさん
2008/11/02(日) 16:04:21 POJOのおかげで機能ではなくドメイン主体で継承作れるのはいいけど、
「なにがDIされるか」を知ってないと自分の書いたコードで
実行時になにが起こるかわかりにくいよねえ。継承ならまだ階層追えば
調べられるけど。
フレームワークのDIはほどほどにしてコード内で明示的に
委譲するようにしたい。でもspring利用しといて一部のクラスの生成だけ
サービス管理クラスを呼び出すのもわかりにくいし、難しいなあ
「なにがDIされるか」を知ってないと自分の書いたコードで
実行時になにが起こるかわかりにくいよねえ。継承ならまだ階層追えば
調べられるけど。
フレームワークのDIはほどほどにしてコード内で明示的に
委譲するようにしたい。でもspring利用しといて一部のクラスの生成だけ
サービス管理クラスを呼び出すのもわかりにくいし、難しいなあ
254デフォルトの名無しさん
2008/11/03(月) 20:24:21255デフォルトの名無しさん
2008/11/03(月) 21:33:33 >>254
君こそ勉強し直した方がいいぞ。DI以前にOOもな。
君こそ勉強し直した方がいいぞ。DI以前にOOもな。
256デフォルトの名無しさん
2008/11/03(月) 21:41:05 タイプセーフを壊す過度なDIは不毛。
Guiceみたいな形式が一番スマートだと思う。
Guiceみたいな形式が一番スマートだと思う。
257デフォルトの名無しさん
2008/11/03(月) 21:52:57 253はいろいろ分かってなさそう
258デフォルトの名無しさん
2008/11/03(月) 23:07:13259デフォルトの名無しさん
2008/11/04(火) 19:41:26 コンパイルするときはキャストとDIは別問題だし
注入する実装クラスが違ってたらコンテナが起動時に教えてくれるから
DIでタイプセーフ云々を問題視したことないんだが
注入する実装クラスが違ってたらコンテナが起動時に教えてくれるから
DIでタイプセーフ云々を問題視したことないんだが
260デフォルトの名無しさん
2008/11/04(火) 23:30:27261デフォルトの名無しさん
2008/11/05(水) 00:01:17 >>253の一段落目はその通りだと思うんだけどおかしいの?
262デフォルトの名無しさん
2008/11/05(水) 00:52:35 253だけど継承にしたって結局フレームワーク側がどうやって
継承元のメソッドを呼び出してるかは継承関係追っかけるだけじゃ
わからないから、DIも継承も関係ないや、と思った。まる。
継承元のメソッドを呼び出してるかは継承関係追っかけるだけじゃ
わからないから、DIも継承も関係ないや、と思った。まる。
263デフォルトの名無しさん
2008/11/05(水) 23:23:27264デフォルトの名無しさん
2008/11/06(木) 02:10:35 >>253
>実行時になにが起こるかわかりにくいよねえ。
そもそもDependency Injectionというのは
「分からないでもいい」という粗結合を実現するためのもの。
呼び出し側はインターフェースだけを知っていればよい。
理想論ではあるけれども。
おそらく実装に過度に依存したコードを書いているんだろうなと思う。
>実行時になにが起こるかわかりにくいよねえ。
そもそもDependency Injectionというのは
「分からないでもいい」という粗結合を実現するためのもの。
呼び出し側はインターフェースだけを知っていればよい。
理想論ではあるけれども。
おそらく実装に過度に依存したコードを書いているんだろうなと思う。
265デフォルトの名無しさん
2008/11/06(木) 05:30:53 いやあ、デバッグの時に処理が追いにくいのがなんかなあって。
フレームワークのドキュメント調べてる時間で自分で書いた方が
早かったじゃんって思ったり。フレームワークの全機能使う訳じゃ
ないからさ。
フレームワークのドキュメント調べてる時間で自分で書いた方が
早かったじゃんって思ったり。フレームワークの全機能使う訳じゃ
ないからさ。
266デフォルトの名無しさん
2008/11/07(金) 00:43:44 >>265
DIコンテナに限らない話だな
DIコンテナに限らない話だな
267デフォルトの名無しさん
2008/11/08(土) 16:22:02 技術的な話として便利かどうかと言えば明らかに便利
ただし、便利なら採用できるかといえば、それは次元の違う話
それだけ
ただし、便利なら採用できるかといえば、それは次元の違う話
それだけ
268デフォルトの名無しさん
2008/11/08(土) 18:56:25 まぁでもSpringやSeasar2採用してるプロジェクト多いでしょ
と思ったら1割くらいか…
と思ったら1割くらいか…
269デフォルトの名無しさん
2008/11/08(土) 19:07:59 DI支持派の主張で疑問なのは、
インタフェースと実装の分離という原則を説いて (それ自体は誰でも賛成する)
そこでDI登場、と素っ飛ぶところ。
DIという考えが生まれるよりも遥か昔から、プログラマはインタフェースと実装を分離していたわけだが。
インタフェースと実装の分離という原則を説いて (それ自体は誰でも賛成する)
そこでDI登場、と素っ飛ぶところ。
DIという考えが生まれるよりも遥か昔から、プログラマはインタフェースと実装を分離していたわけだが。
270デフォルトの名無しさん
2008/11/08(土) 19:43:28 それやってる奴って多分DI使ってる奴の100分の1以下だろ
だったら俺は昔からMVCに分けてたとかORマッピングやってたとかなっちゃうぜ
だったら俺は昔からMVCに分けてたとかORマッピングやってたとかなっちゃうぜ
271デフォルトの名無しさん
2008/11/08(土) 19:49:21 昔からインタフェースと実装の分離をしているような奴なら、
自前のサービスロケータやDIコンテナモドキも作っているわけで。
だったら、そこでDI登場、と素っ飛んでしまっても何も
問題は無いと思う。
自前のサービスロケータやDIコンテナモドキも作っているわけで。
だったら、そこでDI登場、と素っ飛んでしまっても何も
問題は無いと思う。
272デフォルトの名無しさん
2008/11/08(土) 19:53:27 俺はJavaなんて登場する前から仮想マシンを作って型に厳格な言語を構想していたが
273デフォルトの名無しさん
2008/11/08(土) 21:43:11 >>269
>インタフェースと実装の分離という原則を説いて (それ自体は誰でも賛成する)
この「インタフェースと実装の分離」を聞きながら、
「はあ?その理想論をどーやって現場で使えっつうんだよ!!」
って思ってたところに
>そこでDI登場、と素っ飛ぶところ
DIが出てきて、
「あーなるほどね、そーやるのね」
って感じでナットクされたってこと。
インターフェイスとインプリメンテーション
みたいに
理論と実践をやってみせたのがDI。
>インタフェースと実装の分離という原則を説いて (それ自体は誰でも賛成する)
この「インタフェースと実装の分離」を聞きながら、
「はあ?その理想論をどーやって現場で使えっつうんだよ!!」
って思ってたところに
>そこでDI登場、と素っ飛ぶところ
DIが出てきて、
「あーなるほどね、そーやるのね」
って感じでナットクされたってこと。
インターフェイスとインプリメンテーション
みたいに
理論と実践をやってみせたのがDI。
274デフォルトの名無しさん
2008/11/09(日) 06:08:42 >>インタフェースと実装の分離という原則を説いて (それ自体は誰でも賛成する)
>この「インタフェースと実装の分離」を聞きながら、
>「はあ?その理想論をどーやって現場で使えっつうんだよ!!」
>って思ってたところに
そういう人のための道具ということでよろしいですか?
>この「インタフェースと実装の分離」を聞きながら、
>「はあ?その理想論をどーやって現場で使えっつうんだよ!!」
>って思ってたところに
そういう人のための道具ということでよろしいですか?
275デフォルトの名無しさん
2008/11/09(日) 12:29:57 >>269
それまではService Locatorをつかってた。
昔のEJBとかね。
だから、最初はDIじゃなくてInversion of Control(制御の反転)コンテナとか軽量コンテナとか呼ばれてたんだよ。
それまではService Locatorをつかってた。
昔のEJBとかね。
だから、最初はDIじゃなくてInversion of Control(制御の反転)コンテナとか軽量コンテナとか呼ばれてたんだよ。
276デフォルトの名無しさん
2008/11/09(日) 12:42:13 DIって自動テストツールを使った、単体テストの時めちゃくちゃ便利
むしろDIが無いと出来ないといってもいいな
むしろDIが無いと出来ないといってもいいな
277デフォルトの名無しさん
2008/11/09(日) 15:36:38 >>274
お前は独自フレームワーク(笑)でも作って一人で頑張って
お前は独自フレームワーク(笑)でも作って一人で頑張って
278269
2008/11/09(日) 20:25:58 >>275
流石にファウラーの記事くらいは読んで言ってるよ。日本語訳もあるんだし
そもそもファウラー自身がメリットデメリットの話を書いているのに
素人が何の検討もなしに流行に乗っているだけという感じが。
巷が騒がしいから俺も遊んでみる→なんかコード書かなくて楽じゃね?→DIワショーイ
という狂宴
流石にファウラーの記事くらいは読んで言ってるよ。日本語訳もあるんだし
そもそもファウラー自身がメリットデメリットの話を書いているのに
素人が何の検討もなしに流行に乗っているだけという感じが。
巷が騒がしいから俺も遊んでみる→なんかコード書かなくて楽じゃね?→DIワショーイ
という狂宴
279デフォルトの名無しさん
2008/11/09(日) 21:11:19280デフォルトの名無しさん
2008/11/10(月) 00:36:54 ループの御燗
281デフォルトの名無しさん
2008/11/10(月) 19:44:31 めんどくせー。
AOPが簡単にできるだけで良いじゃねーか。
AOPが簡単にできるだけで良いじゃねーか。
282デフォルトの名無しさん
2008/11/11(火) 20:30:12 半端に知ってる人が詰まっても知識の押し付けあいになっちゃうのですね。
あんたらばかぁ?
あんたらばかぁ?
283デフォルトの名無しさん
2008/11/11(火) 23:53:04 人が詰まるw
284デフォルトの名無しさん
2008/11/11(火) 23:57:24 詰まらないスレだな。
285デフォルトの名無しさん
2008/11/12(水) 00:27:39 > DIコンテナって本当に便利か?
ひがちゃんに聞いてみれば?
たぶん「ホットデプロイが!!!」しか言わないと思うが。
ひがちゃんに聞いてみれば?
たぶん「ホットデプロイが!!!」しか言わないと思うが。
286デフォルトの名無しさん
2008/11/12(水) 00:29:46 DIコンテナ要らないからホットデプロイだけくれよ。
287デフォルトの名無しさん
2008/11/12(水) 00:32:52 >>286
javarebel
javarebel
288デフォルトの名無しさん
2008/11/13(木) 17:00:25 あると便利だけどねー
289デフォルトの名無しさん
2008/11/22(土) 23:40:00 俺みたいな古いPCしか持ってないと「軽量」ってことが、すごーく高価値なんだよね。
GlassFishやJBossやら動いちゃくれても、現実問題耐えられんのよw画面真っ白けにしてお休みしちょうし。
かと言ってxmlヘルへの逆行もごめんだしで、もうS2アディクティブですよ。
GlassFishやJBossやら動いちゃくれても、現実問題耐えられんのよw画面真っ白けにしてお休みしちょうし。
かと言ってxmlヘルへの逆行もごめんだしで、もうS2アディクティブですよ。
290デフォルトの名無しさん
2008/11/24(月) 22:44:02 >>289
J2EEコンテナ(GlassFish , JBoss vs Tomcat , jetty) と
フレームワークの違いを混ぜてないか?
DI コンテナは、フレームワーク(ライブラリ)であって、J2EE コンテナではないだろう。
J2EEコンテナ(GlassFish , JBoss vs Tomcat , jetty) と
フレームワークの違いを混ぜてないか?
DI コンテナは、フレームワーク(ライブラリ)であって、J2EE コンテナではないだろう。
291デフォルトの名無しさん
2008/11/24(月) 22:50:43 依存性注入(DI)は成功したか?
http://www.infoq.com/jp/news/2007/12/does-di-pay-off
この記事でも、DIはテストする際の有利さ(便利さ)が語られている。
(逆に言えば、それしかない、という意見も紹介されている)
http://www.infoq.com/jp/news/2007/12/does-di-pay-off
この記事でも、DIはテストする際の有利さ(便利さ)が語られている。
(逆に言えば、それしかない、という意見も紹介されている)
292デフォルトの名無しさん
2008/11/25(火) 01:12:27 比較的導入が進んでる海外でも
この手のしょうもない議論がまだ繰り返されてるんだな。
OOPも初期は無駄な議論多かったよな。
今は自明だから議論が発生しないか、
あるいは分かってふりして黙ってるかの二択だが。
この手のしょうもない議論がまだ繰り返されてるんだな。
OOPも初期は無駄な議論多かったよな。
今は自明だから議論が発生しないか、
あるいは分かってふりして黙ってるかの二択だが。
293デフォルトの名無しさん
2008/11/27(木) 00:25:49 だが実際問題、XMLは自動記述してくれないと嫌にならないか?結局というかRubyonRailのようなのが人気なのもJavaにはこんな問題もあるからだと思う。
294デフォルトの名無しさん
2008/11/27(木) 01:30:13 XML書くのが嫌ならguice使えばいいじゃん
295デフォルトの名無しさん
2008/11/27(木) 02:19:09 クラス図書くコストの1/3でクラス間の相関が記述出来る。
XML書くことの何が面倒なのか理解不能。
XML書くことの何が面倒なのか理解不能。
296デフォルトの名無しさん
2008/11/27(木) 02:30:09 実際XML地獄が深刻なので回避しようというのがトレンド
297デフォルトの名無しさん
2008/11/27(木) 08:42:29 今時のSeasar2プロダクトは規約で縛ってよっぽどのことがないとXML書かないけどな
SAStrutsとか
SAStrutsとか
298デフォルトの名無しさん
2008/11/27(木) 21:00:58 Seasar2はいいな。確かに楽をさせてくれる。
299デフォルトの名無しさん
2008/11/27(木) 21:18:39 XMLヘルはHibernateやSpringやantのせいだろ。
あいつらは設定ファイルやデータファイルの域を逸脱してる。
web.xmlとstruts-config or faces-configだけなら大して難しくない。
あいつらは設定ファイルやデータファイルの域を逸脱してる。
web.xmlとstruts-config or faces-configだけなら大して難しくない。
300デフォルトの名無しさん
2008/11/27(木) 23:07:03 antを責めるのは筋違い
301デフォルトの名無しさん
2008/11/28(金) 02:24:15 >>299
つか、いまどきHibernateやらSpringやらもアノテーションだろ。
つか、いまどきHibernateやらSpringやらもアノテーションだろ。
302デフォルトの名無しさん
2008/11/28(金) 02:24:51 >>300
antの、XMLで条件分岐や繰り返しや変数代入ってプログラム書かされるのはイヤになんない?
antの、XMLで条件分岐や繰り返しや変数代入ってプログラム書かされるのはイヤになんない?
303デフォルトの名無しさん
2008/11/28(金) 07:34:04 XML地獄とか、いつの時代の話をしているんだよ、っという感はある。
304デフォルトの名無しさん
2008/11/29(土) 09:15:28 例え自動生成してたとしても、XML地獄がそこに存在してるんだよ。
305デフォルトの名無しさん
2008/11/29(土) 09:26:57 今はXML地獄ではなくて、アノテーション地獄だろ。
306デフォルトの名無しさん
2008/11/29(土) 10:14:29 XMLよりはマシっしょ、とつられてみる。
307デフォルトの名無しさん
2008/11/29(土) 10:49:33 アノテーションはその場に書いてある
XMLは違うファイルをいちいち開いてみなければならない
XMLは違うファイルをいちいち開いてみなければならない
308デフォルトの名無しさん
2008/11/29(土) 12:18:43 Javaは複雑化し過ぎ。
309デフォルトの名無しさん
2008/11/29(土) 16:30:43 >>307
俺は逆だと思う。
XML地獄は、設定をすべて一箇所にまとめておける。
アノテーションは、ソース開いてみないとわからない。
トランザクションなどの挙動を変えるときに、アノテーションはソースコードを編集しないといけないが、
XMLの場合は、設定ファイルをいじるだけ。
DIコンテナが登場した初期の思想、「設定をソースから追い出す」を、アノテーションは壊してしまっていると思う。
※アノテーションがすべて悪いといっているわけではない
俺は逆だと思う。
XML地獄は、設定をすべて一箇所にまとめておける。
アノテーションは、ソース開いてみないとわからない。
トランザクションなどの挙動を変えるときに、アノテーションはソースコードを編集しないといけないが、
XMLの場合は、設定ファイルをいじるだけ。
DIコンテナが登場した初期の思想、「設定をソースから追い出す」を、アノテーションは壊してしまっていると思う。
※アノテーションがすべて悪いといっているわけではない
310デフォルトの名無しさん
2008/11/29(土) 21:06:32 >>309
言いたい事を俺はどこまで理解できるか覚束ないレベルなんだが、
たとえばO/Rマッピングが一切のSQL文の排除を理想とするなら、SQL文定義ファイルは邪道になっちゃうよね。
設計思想に理想はあるべきでも、ほどよく妥協させてくれる仕組みがあるのが一番と思うんだが。
設定を一切合切ソースから追い出すのに、時間をかけすぎるくらいなら少しあってもいいんじゃ。コードの形式美を追求するためだけに書く人間が人生を浪費させられるんじゃねw
最後のひと言※があるからわかっちゃもらえると思う。俺はもうXMLオンリーの世界に帰りたくないw
なーんて。
言いたい事を俺はどこまで理解できるか覚束ないレベルなんだが、
たとえばO/Rマッピングが一切のSQL文の排除を理想とするなら、SQL文定義ファイルは邪道になっちゃうよね。
設計思想に理想はあるべきでも、ほどよく妥協させてくれる仕組みがあるのが一番と思うんだが。
設定を一切合切ソースから追い出すのに、時間をかけすぎるくらいなら少しあってもいいんじゃ。コードの形式美を追求するためだけに書く人間が人生を浪費させられるんじゃねw
最後のひと言※があるからわかっちゃもらえると思う。俺はもうXMLオンリーの世界に帰りたくないw
なーんて。
311デフォルトの名無しさん
2008/11/30(日) 05:31:11 eclipseみたいなIDEで編集してwarに固めてデプロイするのに
ソースいじったらコンパイルが必要とかはもうデメリットじゃないと思う。
ロジックの階層に応じてxmlなりアノテーションなりにまとめておければ
いいんじゃないの?設定ファイルにif文や変数いれたりアノテーションに
ビジネスロジック入れるようになるとやりすぎだと思う。
アノテーションでvalidateするのもvalidate処理が分散してちょっと嫌。
ORMはSQLを排除するんじゃなくて、速度を気にしないでいいところは
自動生成しちゃおうよって事だと思う。チューニングが必要なSQLだけ
外部ファイル書き出しでいいでしょ。つかみんなそうやってない?
ソースいじったらコンパイルが必要とかはもうデメリットじゃないと思う。
ロジックの階層に応じてxmlなりアノテーションなりにまとめておければ
いいんじゃないの?設定ファイルにif文や変数いれたりアノテーションに
ビジネスロジック入れるようになるとやりすぎだと思う。
アノテーションでvalidateするのもvalidate処理が分散してちょっと嫌。
ORMはSQLを排除するんじゃなくて、速度を気にしないでいいところは
自動生成しちゃおうよって事だと思う。チューニングが必要なSQLだけ
外部ファイル書き出しでいいでしょ。つかみんなそうやってない?
312デフォルトの名無しさん
2008/11/30(日) 13:46:22 >>309
トランザクションの挙動みたいにアプリケーション横断なものは、それはそれでまとめておけばいいだろ。
トランザクションの挙動みたいにアプリケーション横断なものは、それはそれでまとめておけばいいだろ。
313デフォルトの名無しさん
2008/11/30(日) 15:05:23 開発中の一覧性というなら、アノテーションの使用状況みればいい。
Seamみたいにカスタムアノテーションで共通設定をまとめれれば、設定を一箇所にまとめておける。
>>309 はアノテーションの使い方や、設定とアプリケーション構成記述の違いをわかってないだけではないか?
Seamみたいにカスタムアノテーションで共通設定をまとめれれば、設定を一箇所にまとめておける。
>>309 はアノテーションの使い方や、設定とアプリケーション構成記述の違いをわかってないだけではないか?
314デフォルトの名無しさん
2008/11/30(日) 23:34:11 派生開発や保守対応での既存ソースコード変更には厳格な手続きが必要で神経質になる客先が多いし、
アノテーションが散らばったソースコードを元にライブラリマイグレーションする事を考えると鬱になる。
5年前に良いと言われていたものを今見てみるとひどいだろ? 5年後はどう?って感じるのも事実。
アノテーションが散らばったソースコードを元にライブラリマイグレーションする事を考えると鬱になる。
5年前に良いと言われていたものを今見てみるとひどいだろ? 5年後はどう?って感じるのも事実。
315デフォルトの名無しさん
2008/12/01(月) 01:15:16 で、それがXMLで設定なら解決できるというのは、能天気すぎやしないか?
316デフォルトの名無しさん
2008/12/01(月) 07:21:26 XMLで設定すれば解決できるなんて一言も言ってないが?
317デフォルトの名無しさん
2008/12/04(木) 14:45:42318デフォルトの名無しさん
2008/12/07(日) 17:52:43 自動テストツール使わないなら、
DI使ってる意味が無いという事が分からない低能が多くて困る
流行ってるらしいからとかって理由だけでDI導入すんな!
DI使ってる意味が無いという事が分からない低能が多くて困る
流行ってるらしいからとかって理由だけでDI導入すんな!
319デフォルトの名無しさん
2008/12/07(日) 18:25:47 ( ゚д゚)ポカーン
320デフォルトの名無しさん
2008/12/07(日) 19:21:05 まぁこんなもんだろ・・
一般のプログラマの能力なんて。
一般のプログラマの能力なんて。
321デフォルトの名無しさん
2008/12/07(日) 21:38:30 318はどう見ても釣り
322デフォルトの名無しさん
2008/12/07(日) 23:24:37 全部のクラスに頑張ってログ出力書いたりログインチェック書いたりしたいんだろう
323デフォルトの名無しさん
2008/12/07(日) 23:36:21324デフォルトの名無しさん
2008/12/07(日) 23:47:49 まぁ純粋にDIだけ使ってるのって無いよね
SeasaもSpringも
EJBは知らんけど
SeasaもSpringも
EJBは知らんけど
325デフォルトの名無しさん
2008/12/08(月) 00:41:32 今どきトレースログとか書くの?
サービスクラスだけじゃなくて?
サービスクラスだけじゃなくて?
326デフォルトの名無しさん
2008/12/08(月) 01:51:40 まあ、書くこともあるんじゃない?
俺は書かんけど。
俺は書かんけど。
327デフォルトの名無しさん
2008/12/10(水) 12:40:10 N1マッピングがめんどい。
めんどい。
めんどい。
328デフォルトの名無しさん
2008/12/10(水) 15:43:35 ログインチェックだってDI使わなくても
filter挟んだりベースクラスでやるよね。
全部のクラスにコピペする人なんてさすがに見たこと無い
filter挟んだりベースクラスでやるよね。
全部のクラスにコピペする人なんてさすがに見たこと無い
329デフォルトの名無しさん
2008/12/10(水) 17:26:32 いやそれAOPでやることだし。DIじゃないよ
330デフォルトの名無しさん
2008/12/10(水) 17:29:43 >>328
filter は HttpServlet に依存するが、
DI にすることで、HttpServlet に依存しない環境でもログインチェックをすることができる。
たとえば、業務機能は、web 画面でもバッチでも Service クラス の execute() を実装する、
みたいな方針になっているとき。
バッチにも実行ユーザという概念があったときは、filter にせず DI でのやり方にすることで、
web画面でもバッチでも処理方式を統一することができる。
こうしておくと、web 画面の Service クラスのテストを、
Servlet コンテナを立ち上げずに JUnit 等から単体駆動することもできる。
filter は HttpServlet に依存するが、
DI にすることで、HttpServlet に依存しない環境でもログインチェックをすることができる。
たとえば、業務機能は、web 画面でもバッチでも Service クラス の execute() を実装する、
みたいな方針になっているとき。
バッチにも実行ユーザという概念があったときは、filter にせず DI でのやり方にすることで、
web画面でもバッチでも処理方式を統一することができる。
こうしておくと、web 画面の Service クラスのテストを、
Servlet コンテナを立ち上げずに JUnit 等から単体駆動することもできる。
331デフォルトの名無しさん
2008/12/10(水) 18:18:38 いやだから
DI以前だってベースクラスの一カ所に実装しておくから、
全クラスにコピペするような馬鹿は見たこと無いんだけど、
という事が言いたいんだけど理解してくり
DI以前だってベースクラスの一カ所に実装しておくから、
全クラスにコピペするような馬鹿は見たこと無いんだけど、
という事が言いたいんだけど理解してくり
332デフォルトの名無しさん
2008/12/11(木) 01:58:01 各メソッドを同じ前後処理でつつむときどうするんの?
AOPでできるとか言うが、AOPの実現手段としてDIがいいってことじゃねぇの?
AOPでできるとか言うが、AOPの実現手段としてDIがいいってことじゃねぇの?
333デフォルトの名無しさん
2008/12/11(木) 02:02:12 ぶっちゃけDIの中にあるPOJO信仰は異常だと思う。
EJB3.0はバランスがよくて好感が持てる。
DAOパターン信者の俺にJPAは少しきついが。
EJB3.0はバランスがよくて好感が持てる。
DAOパターン信者の俺にJPAは少しきついが。
334デフォルトの名無しさん
2008/12/11(木) 13:08:10 >>331
処理対象クラスを柔軟に変えたり、
複数の横断的処理をそれぞれ別の対象クラス群に対して実装したいとき
多重継承が出来ないJavaでは限界がある
それを一気に解決出来るのがAOP
AOPがある今では、ベースクラスでそういう処理を実装するのはメンテナンス性が激しく下がるので
なるべく避けるようにしている
処理対象クラスを柔軟に変えたり、
複数の横断的処理をそれぞれ別の対象クラス群に対して実装したいとき
多重継承が出来ないJavaでは限界がある
それを一気に解決出来るのがAOP
AOPがある今では、ベースクラスでそういう処理を実装するのはメンテナンス性が激しく下がるので
なるべく避けるようにしている
335デフォルトの名無しさん
2008/12/11(木) 14:53:32 AOPの便利さはわかったけどさ
AOP/DI以前でも>>322が言うように
>全部のクラスに頑張ってログ出力書いたりログインチェック書いたり
するやつがいたのか?って聞いてるんだけど
まあログ出力はステップ実行の無い昔は全部書いたけどさ
AOP/DI以前でも>>322が言うように
>全部のクラスに頑張ってログ出力書いたりログインチェック書いたり
するやつがいたのか?って聞いてるんだけど
まあログ出力はステップ実行の無い昔は全部書いたけどさ
336デフォルトの名無しさん
2008/12/11(木) 15:45:46337デフォルトの名無しさん
2008/12/11(木) 17:34:54 自分はやらないって奴に他の奴は殆どやってると説いても無駄なんじゃね?
338デフォルトの名無しさん
2008/12/11(木) 17:37:25 >>335
だからAOPが無い時代にベースクラスでそれをやろうとして
StrutsのActionクラスの継承づくしみたいなボロボロな形になったんだよw
それを今でも続けたいのならずっとそうしてれば?
一緒に仕事をする人は迷惑なだけだろうけど
だからAOPが無い時代にベースクラスでそれをやろうとして
StrutsのActionクラスの継承づくしみたいなボロボロな形になったんだよw
それを今でも続けたいのならずっとそうしてれば?
一緒に仕事をする人は迷惑なだけだろうけど
339デフォルトの名無しさん
2008/12/11(木) 17:51:31 だからログインチェックはするし
ベースのexecute()でチェックしてからdoExecute()するだけだから
「Actionクラスの継承づくし」みたいなことにはならなかったし
(なったとしても別の問題だし)、Struts/2以降ならfilter/interceptorだし。
それをやらないなんて一度も言ってないだろ。
AOP/DI以前には全クラスにコピペなんてしてたのか?そんなやついないだろって
言ってるだけじゃないか。ま、どうでもいい話題だしどうでもよかとにあん
ベースのexecute()でチェックしてからdoExecute()するだけだから
「Actionクラスの継承づくし」みたいなことにはならなかったし
(なったとしても別の問題だし)、Struts/2以降ならfilter/interceptorだし。
それをやらないなんて一度も言ってないだろ。
AOP/DI以前には全クラスにコピペなんてしてたのか?そんなやついないだろって
言ってるだけじゃないか。ま、どうでもいい話題だしどうでもよかとにあん
340デフォルトの名無しさん
2008/12/11(木) 18:04:48 ごめんfilterはログインチェックには使ってないわ
visitor系Actionがあるから
interceptorはAction毎にどれを使用するか指定できるけど
visitor系Actionがあるから
interceptorはAction毎にどれを使用するか指定できるけど
341デフォルトの名無しさん
2008/12/11(木) 22:50:41 てかfilterは典型的なAOPじゃん
342デフォルトの名無しさん
2008/12/12(金) 00:40:43 interceptorって、名前からしてAOPっぽいんだが
343デフォルトの名無しさん
2008/12/12(金) 00:44:08 interceptorインタフェイスはアスペクト指向だよねー
344デフォルトの名無しさん
2008/12/17(水) 22:43:49 AOP以前からAOPちっくな設計は普通のオブジェクト指向設計の一環としてやってたよ。
AOPを喧伝する人を見かけたら、マトモなOO設計出来ない人なんじゃないかと警戒する。
AOPを喧伝する人を見かけたら、マトモなOO設計出来ない人なんじゃないかと警戒する。
345デフォルトの名無しさん
2008/12/18(木) 02:00:12 なんだ、単なるOO自慢か。
346デフォルトの名無しさん
2008/12/18(木) 08:24:22 おや・・・酔った勢いで変な事書いた。ごめん。
347デフォルトの名無しさん
2008/12/18(木) 08:35:56 誰でも簡単に使える仕組みを作ってそれを宣伝したらアホってどんな感覚だよw
>>344は自分しか理解できない仕組みしか作れなかったと言ってるようなもんじゃん
>>344は自分しか理解できない仕組みしか作れなかったと言ってるようなもんじゃん
348デフォルトの名無しさん
2008/12/18(木) 08:51:04 宣伝(せんでん)ではなくて喧伝(けんでん)ね。
「盛んに言いふらすこと。世間でやかましく言いたてること。」
酔った勢いとはいえ、申し訳ない。では!
「盛んに言いふらすこと。世間でやかましく言いたてること。」
酔った勢いとはいえ、申し訳ない。では!
349デフォルトの名無しさん
2008/12/18(木) 10:22:59351デフォルトの名無しさん
2008/12/19(金) 00:10:37 >>291
以前から分散アプリサーバ系の構築をやってきた者からすると、
DIではじめて何かできるようになったというより、以前からできてたことを、
コンテナなしでテストできるようになって便利になったという感想になるのだと思う。
以前から分散アプリサーバ系の構築をやってきた者からすると、
DIではじめて何かできるようになったというより、以前からできてたことを、
コンテナなしでテストできるようになって便利になったという感想になるのだと思う。
352デフォルトの名無しさん
2009/03/10(火) 08:40:15353デフォルトの名無しさん
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でインターフェイスを分離する意味ないだろ
昔ならモックに差し替えるのに必要だったが
昔ならモックに差し替えるのに必要だったが
453デフォルトの名無しさん
2012/02/28(火) 23:46:53.79 intra-martの人達ってまだS2押してんの?
454デフォルトの名無しさん
2012/04/19(木) 00:58:00.99 >>140
>>351
>>444
話が合いそうだ
・直列化とビルダーパターン使うべきポイント
・マクロやジェネレータ使えばいいんじゃね?ってポイント
・なぜプログラムの修正をそんなに怖がる?ってポイント
・なぜファクトリの数行を面倒臭がる?(コード書けば言語解析による依存関係調査が可能だし、可読性も高まるのに)
って、結構どうでもいいところでDI使ってる人が沢山いる。
結局、普通のオブジェクト指向に対するシンタックスシュガーに過ぎないので、
経験のない人間が下手に使うと、どう再利用すればいいのか分からない、ゴミ山のような小さいクラス群と
環境によって内容が違う定義ファイルに道を迷わされる。。。
労働集約型産業やりたいのなら、COBOLとか実は良い言語だぜ?
>>351
>>444
話が合いそうだ
・直列化とビルダーパターン使うべきポイント
・マクロやジェネレータ使えばいいんじゃね?ってポイント
・なぜプログラムの修正をそんなに怖がる?ってポイント
・なぜファクトリの数行を面倒臭がる?(コード書けば言語解析による依存関係調査が可能だし、可読性も高まるのに)
って、結構どうでもいいところでDI使ってる人が沢山いる。
結局、普通のオブジェクト指向に対するシンタックスシュガーに過ぎないので、
経験のない人間が下手に使うと、どう再利用すればいいのか分からない、ゴミ山のような小さいクラス群と
環境によって内容が違う定義ファイルに道を迷わされる。。。
労働集約型産業やりたいのなら、COBOLとか実は良い言語だぜ?
455デフォルトの名無しさん
2012/08/18(土) 05:07:00.19 DIコンテナ使ってるのに結局ダウンキャストしてるとか、
それを避けるために(?)インターフェースと実装を1:1にして、同時にメンテしていくとか
そんな使われ方をしている所にしか出会ったことがないんで、考察が足りないかもしれないけど
DIコンテナって、上手く使えば便利なのは分かるんだけど、
publicメソッドの一つも足すことができないし、拡張性が落ちる気がするんだよね。
上の例みたいに、インターフェースと実装を1:1にすればできるけど、
その状況って単に、DIコンテナ使いたいからインターフェースと実装を分離してる感じになっちゃってるし、きもい。
作って終わりならいいけど、拡張をしていく可能性を残すなら、
そう簡単に導入できるものじゃない気がするんだよなぁ。
それを避けるために(?)インターフェースと実装を1:1にして、同時にメンテしていくとか
そんな使われ方をしている所にしか出会ったことがないんで、考察が足りないかもしれないけど
DIコンテナって、上手く使えば便利なのは分かるんだけど、
publicメソッドの一つも足すことができないし、拡張性が落ちる気がするんだよね。
上の例みたいに、インターフェースと実装を1:1にすればできるけど、
その状況って単に、DIコンテナ使いたいからインターフェースと実装を分離してる感じになっちゃってるし、きもい。
作って終わりならいいけど、拡張をしていく可能性を残すなら、
そう簡単に導入できるものじゃない気がするんだよなぁ。
456デフォルトの名無しさん
2013/02/08(金) 12:54:44.22 DBfluteだのJBossだのJava界隈はまともに動かなかったりやる事増やしたりするゴミばっかだな
457デフォルトの名無しさん
2013/02/08(金) 13:10:11.56 http://event.seasarfoundation.org/sc2009white/viewAttachment.do?_pageName_=Session&_fileName_=sc2009white_s406_4_hot.pdf
これ読んでると色々馬鹿馬鹿しくなるね
これ読んでると色々馬鹿馬鹿しくなるね
458デフォルトの名無しさん
2013/02/24(日) 16:07:14.97 DIってsetter使えば要らないよね?
AOP目的で使ってる人いるみたいだけど、ならsetter+AOPで良くてDI不要じゃん
AOP目的で使ってる人いるみたいだけど、ならsetter+AOPで良くてDI不要じゃん
459デフォルトの名無しさん
2013/02/24(日) 16:40:11.43 DIすることとDIコンテナを使うことは区別するべきだと思う。
「setter使えば」が何を意味しているのかイマイチ判然としないけれども、setter使って
サービス等の実装オブジェクトをセットするという意味ならそれは他でもないDIだと思う。
DI自体はDIコンテナの使用の有無に関わらず有用な設計パターンの一つだと思うよ。
あとはブートストラップに実装のsetを列挙するかそれともDIコンテナ使うかの、注入作業
の実装方法の違いに過ぎないと思う。
注入するものとされるものが増えてきて、autowireなど規約による自動注入の類を使い
始めるとDIコンテナも便利だと思う。
「setter使えば」が何を意味しているのかイマイチ判然としないけれども、setter使って
サービス等の実装オブジェクトをセットするという意味ならそれは他でもないDIだと思う。
DI自体はDIコンテナの使用の有無に関わらず有用な設計パターンの一つだと思うよ。
あとはブートストラップに実装のsetを列挙するかそれともDIコンテナ使うかの、注入作業
の実装方法の違いに過ぎないと思う。
注入するものとされるものが増えてきて、autowireなど規約による自動注入の類を使い
始めるとDIコンテナも便利だと思う。
460457
2013/02/24(日) 20:24:51.85 理解が深まりましたm(__)m
461デフォルトの名無しさん
2013/02/24(日) 20:25:24.35 457 -> 458
462デフォルトの名無しさん
2013/12/28(土) 23:07:01.79 うん
463デフォルトの名無しさん
2014/03/02(日) 07:19:45.70 DIでインジェクションするクラスってさ
基本的にシングルトンになると思ってるんだけど
あってる?
基本的にシングルトンになると思ってるんだけど
あってる?
464デフォルトの名無しさん
2014/03/05(水) 21:59:28.30 >>463
何で?親インスタンス1に対して子インスタンス一つ出来るよね?
何で?親インスタンス1に対して子インスタンス一つ出来るよね?
465デフォルトの名無しさん
2014/03/06(木) 20:13:38.55 その親インスタンスも一個でしょ?
466デフォルトの名無しさん
2014/03/06(木) 20:28:00.99 謎が深まりましたm(__)m
467デフォルトの名無しさん
2014/03/06(木) 22:54:00.97 たいていのDIの実装が、シングルトンをデフォルトにしているっていうだけの話ではなくて?
インスタンス管理がHTTPコンテキストのものだと、シングルトンに見えて実際はDynamic Proxyが
インジェクションされていて、本当の処理はHTTPコンテキストに格納された個々のインスタンスへ
デリゲートされている、なんてものもあるし。
インスタンス管理がHTTPコンテキストのものだと、シングルトンに見えて実際はDynamic Proxyが
インジェクションされていて、本当の処理はHTTPコンテキストに格納された個々のインスタンスへ
デリゲートされている、なんてものもあるし。
468デフォルトの名無しさん
2014/03/15(土) 12:31:18.68ID:4evGY2gy jmockit使えるようになってからは、主だったビジネスロジック部分でのDIはなくてもいいんじゃないかという結論に辿り着いた。
もちろん全部不要って意味じゃないけど、自前でnewすることは怖いことじゃない。
なんていうか、今後を考えてもまず必要のないことが明確にわかるような、
意味のないDIの使い方をしているプロジェクト、多すぎると思う。
もちろん全部不要って意味じゃないけど、自前でnewすることは怖いことじゃない。
なんていうか、今後を考えてもまず必要のないことが明確にわかるような、
意味のないDIの使い方をしているプロジェクト、多すぎると思う。
469デフォルトの名無しさん
2014/03/15(土) 12:51:07.19ID:eSop4WYi 普通はデータベース・ファイルIO・外部システム連携部やAPI等をインターフェースにして
単体テスト時はモック、動作時にはDIで実装クラス注入というパターンだな
勘違いした人が全てのクラスに対してインターフェースを用意してDIとかやり始めると、
複雑度が跳ね上がって困ったことになる
単体テスト時はモック、動作時にはDIで実装クラス注入というパターンだな
勘違いした人が全てのクラスに対してインターフェースを用意してDIとかやり始めると、
複雑度が跳ね上がって困ったことになる
470デフォルトの名無しさん
2014/03/18(火) 08:14:10.97ID:tRXj2H8I やっぱり使える場所ってかなり少ないはずなんだよな
その辺はマルチスレッドを使うときのパターンに近似していると思う
DIコンテナの開発元や布教者がむやみにあちこち使わせるような
悪質なチュートリアルや宣伝をしているのが原因ではないだろうか
その辺はマルチスレッドを使うときのパターンに近似していると思う
DIコンテナの開発元や布教者がむやみにあちこち使わせるような
悪質なチュートリアルや宣伝をしているのが原因ではないだろうか
471デフォルトの名無しさん
2014/03/18(火) 11:02:39.52ID:SyPosiOD 使える場所は限られるが、ありがちなWebアプリだと、
手続き的に何度も書かなきゃいけないとこはだいたいカバーできるから、
普及してるんだと思われる。
勿論、何でもかんでもDIでというのはおかしいが。
手続き的に何度も書かなきゃいけないとこはだいたいカバーできるから、
普及してるんだと思われる。
勿論、何でもかんでもDIでというのはおかしいが。
472デフォルトの名無しさん
2014/08/02(土) 11:50:17.01ID:1euMp4Dx >>463
インジェクションするインスタンスのライフサイクルを外部から設定できるのもDIの特徴の一つだよ。
考えられるライフサイクルは、以下とかかな
シングルトン
DIするごとにインスタンス生成
同スレッド中で同インスタンス
Webアプリケーションの場合、セッションやリクエストもあるね。
インジェクションするインスタンスのライフサイクルを外部から設定できるのもDIの特徴の一つだよ。
考えられるライフサイクルは、以下とかかな
シングルトン
DIするごとにインスタンス生成
同スレッド中で同インスタンス
Webアプリケーションの場合、セッションやリクエストもあるね。
473デフォルトの名無しさん
2014/09/21(日) 11:50:29.01ID:QmbMYAkp おちんぽインジェクション!
474デフォルトの名無しさん
2014/11/04(火) 12:10:06.56ID:tJPjGfpS >>469
難易度って意味だと、
自動テストって何ですか、単体テストは画面から動かしました!
ってなのが蔓延ってて、
○○機能サービスってクラスに
viewの状態から、SQLIDを含んだ発行メソッドや、ユーティリティ以外の全メソッドが乗ってる
そんな現場だと、例外なく全てである
って言い切っちゃった方がすんなり行きそう
それが新しいルールだってことにして
難易度って意味だと、
自動テストって何ですか、単体テストは画面から動かしました!
ってなのが蔓延ってて、
○○機能サービスってクラスに
viewの状態から、SQLIDを含んだ発行メソッドや、ユーティリティ以外の全メソッドが乗ってる
そんな現場だと、例外なく全てである
って言い切っちゃった方がすんなり行きそう
それが新しいルールだってことにして
475デフォルトの名無しさん
2015/12/19(土) 10:22:39.99ID:TihVvVxJ プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
476デフォルトの名無しさん
2015/12/19(土) 15:44:40.26ID:HaKKFtRZ どこの部分をポリモる必要があるかちゃんと線引きしておかないと、DI導入してもただうっとうしいだけになるんだよな。
477デフォルトの名無しさん
2016/01/26(火) 21:19:13.12ID:96cI6c2/ 仕様がふわふわしてる時には自衛の為にDIしたほうがいい
478デフォルトの名無しさん
2016/03/29(火) 08:59:52.53ID:/c8bAcK4 サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
479デフォルトの名無しさん
2016/04/29(金) 22:34:59.65ID:h96wBy+l Unityでdecoratorパターンしたい場合はどういう風に設定を書けばいいんでしょうか
例えばコードで書くとこんな感じです
var co = new UnityContainer();
co.RegisterType<ILogger, Logger>();
co.RegisterType<IFoo>(new InjectionFactory(
c => new LoggingFoo(new Foo(), c.Resolve<ILogger>()
));
これをコードではなく設定ファイルで定義したいです
例えばコードで書くとこんな感じです
var co = new UnityContainer();
co.RegisterType<ILogger, Logger>();
co.RegisterType<IFoo>(new InjectionFactory(
c => new LoggingFoo(new Foo(), c.Resolve<ILogger>()
));
これをコードではなく設定ファイルで定義したいです
480デフォルトの名無しさん
2016/07/08(金) 23:15:32.94ID:oeqNGrjL 39 仕様書無しさん 2016/07/08(金) 23:11:07.46
Oracle、Java EEから手を引く可能性も
http://s.news.mynavi.jp/news/2016/07/04/261/
Oracle、Java EEから手を引く可能性も
http://s.news.mynavi.jp/news/2016/07/04/261/
481デフォルトの名無しさん
2016/09/23(金) 00:09:39.76ID:wN+HuPEq そもそもClass定義自体がファクトリのはず
なのに何故、いちいちフレームワークの助けが必要なのか。
DIは今後の言語で言語仕様自体に組み込まれ
消えていくだろう
なのに何故、いちいちフレームワークの助けが必要なのか。
DIは今後の言語で言語仕様自体に組み込まれ
消えていくだろう
482デフォルトの名無しさん
2016/09/23(金) 12:46:27.71ID:pEruE6c3 汎化が過剰だからフレームワークの助けが必要になるんじゃないかと
コードを自動生成したほうがマシな気がする
コードを自動生成したほうがマシな気がする
483デフォルトの名無しさん
2018/05/23(水) 23:01:01.60ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
6IEJF
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
6IEJF
484デフォルトの名無しさん
2018/07/04(水) 23:07:25.92ID:gFgZc5FG 9WT
485デフォルトの名無しさん
2018/10/12(金) 17:13:29.26ID:5jm0P0/q 保守
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★7
- トランプ、G7に代わるcore 5を発表 [805596214]
- ハロワって客層悪すぎるだろwwwwwwwwwwwww
- オナニーするか😔
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- VIPスクリプトだらけでワロタwwwwwwwww
