オブジェクト指向とDIを分かりやすく例えて教えてくれ 3
■ このスレッドは過去ログ倉庫に格納されています
0001仕様書無しさん
垢版 |
2018/05/19(土) 21:44:19.89
■ オブジェクト指向・デザインパターン(有用)
 
 わかり易い例
 class Dog extends Animal
 class Cat extends Animal

■ DI(ゴミ)

 DIとは?・・・オブジェクト指向の依存関係を"ひとまとめに"定義する部分と、それを利用するために
        オブジェクトを直接newするのではなく、DIコンテナにnewしてもらうパターン

 https://web.archive.org/web/20170707082300/http://kakutani.com/trans/fowler/injection.html

 > Dependency Injection の形式
 > Dependency Injection の基本的な考え方は、独立したオブジェクトを
 > Assembler(組み立て係)として用意し、 MovieFinder インタフェースの実装を
 > MovieLister クラスのフィールドへ適切に設定させるというものだ。
 > 依存関係は図2のようになる。


前スレ

オブジェクト指向とは 分かりやすく教えてくれ
https://medaka.5ch.net/test/read.cgi/prog/1521869966/

オブジェクト指向を分かりやすく例えて教えてくれ 2
https://medaka.5ch.net/test/read.cgi/prog/1525660302/
0524仕様書無しさん
垢版 |
2018/06/19(火) 20:02:42.71
シェルのパイプラインでサクサクつなげて30秒で入力おわり即実行みたいな処理も
JavaやC#でDIを使うとサブプロセスをインターフェースで隠蔽してインジェクト、
データベースもインジェクト、Webアクセスもインジェクト、設定ファイル読むのもインジェクト
って具合にアホみたいに大量のクラスとインターフェースが作られる
ビルドも遅いしコンテナサービスセットアップしてクラス全部登録すんのも超めんどくさい
0525仕様書無しさん
垢版 |
2018/06/19(火) 20:03:46.05
>>523
だから俺は価値がないDIを使わないって。
DIは特になにか必要になってるわけじゃないのに
こんなふうに(冗長に)書け。そうすれば
そのうち役に立つかもしれないって押し付けるパターンだからね
0528仕様書無しさん
垢版 |
2018/06/21(木) 22:54:49.91
>>524
それで済む程度の処理にDIなんか使うわけないじゃん
「同僚」とやらが実在するなら注意してあげな
0529仕様書無しさん
垢版 |
2018/06/21(木) 23:06:29.63
そのとおり
DIなんて使うわけないんだよ普通はね
0531仕様書無しさん
垢版 |
2018/06/22(金) 06:38:06.50
ではどういうときに必要になるかと言うと、
その具体例はでてこないという
だって、必要だからDIを使うのではなく
とりあえずDIを使っとけになってるから
0534仕様書無しさん
垢版 |
2018/06/22(金) 08:42:43.84
しょぼい案件で工数がそれほど見込めない時に水増しする為に無駄な実装でかさ上げするのに有効。
0537仕様書無しさん
垢版 |
2018/06/23(土) 09:39:53.14
DIは最高すぎるけどなぁ
本当に同じものについて語ってるのだろうか
0539仕様書無しさん
垢版 |
2018/06/23(土) 11:07:26.10
300行で書けるスクリプトがJavaとDIのせいで2000行ぐらいに膨れ上がった
ほんと害悪なんだが
0542仕様書無しさん
垢版 |
2018/06/23(土) 13:43:59.61
ドカタがドカタ言語で書くとDIは冗長になるのは分かるよ?
でもそれはドカタが悪いのであってDIの所為じゃない
こっちはDI使ってシンプルで読みやすく保守しやすいコードが書けるんだから寄ってくんな
0544仕様書無しさん
垢版 |
2018/06/23(土) 13:54:28.72
というかjavaやc#がうんこだからDIで安全マージンとりながらやらなければならない
スクリプトだったらそんなん要らん
0547仕様書無しさん
垢版 |
2018/06/23(土) 14:58:12.71
>>542
> ドカタがドカタ言語で書くとDIは冗長になるのは分かるよ?
俺はわかんないよ

なんで、ドカタがドカタ言語で書くとDIは冗長になるのか
説明してくれよ
0549仕様書無しさん
垢版 |
2018/06/23(土) 16:25:52.61
DIで冗長になる前提で話してるのが意味不明
冗長になるって言うならコード書いてみてよ
0550仕様書無しさん
垢版 |
2018/06/23(土) 16:29:22.88
ドカタがドカタ言語でどんなコード書くのか興味深い
0552仕様書無しさん
垢版 |
2018/06/23(土) 17:07:44.52
じゃあお題

$app = New-Object -ComObject Excel.Application
$app.DisplayAlerts = $false
$app.Visible = $false
Remove-Item ./* -Recurse
git clone $env.REPO_URL
Get-ChildItem ./spread/*.xlsx | foreach {
$book = $app.Workbooks.Open($_.FullName)
$sheet = $app.Worksheets("datasheet")
[pscustomobject]@{
Foo = $sheet.Range("A1").Text
Bar = $sheet.Range("D5").Text
Baz = $sheet.Range("G2").Text
}
$.Close($false)
} | where { $_.Foo -ne "xxx" } | foreach {
$cmd = "insert into XlsxImp (foo,bar,baz) values ('$($_.Foo)', '$($_.Bar)', '$($_.Baz)');"
$cmd | sqlplus -s -l $env.DB_CONN_STR as sysdba
}
$app.Quit()

JavaとDIを使うとどうなる?
0554仕様書無しさん
垢版 |
2018/06/23(土) 18:34:11.17
ドカタはexcel使う必要あるんだね
成る程ドカタだわ
0555仕様書無しさん
垢版 |
2018/06/23(土) 19:14:20.37
ほらみたことか
DIじゃろくな事にならないからって無様な捨ぜりふ吐いて逃げるんだもんなぁ
普段偉そうなこと言ってるわりにこれだもん
DI厨の限界見えたわ
0556仕様書無しさん
垢版 |
2018/06/23(土) 19:32:29.71
処理の概要とideone.comなどコードが見易い所にあげるぐらいの気遣いは欲しいな

色んな依存はある気がするが処理がこれしかないならこのままでいいんじゃね?
0557仕様書無しさん
垢版 |
2018/06/23(土) 19:36:15.29
DI厨「DIの不利を悟ったから関係ないこと言ってお茶を濁そう」
0558仕様書無しさん
垢版 |
2018/06/23(土) 19:41:55.71
全体で20行ぐらいのコードしかないのに
DIする奴いるの?
0559仕様書無しさん
垢版 |
2018/06/23(土) 19:44:18.96
アンチDIって、DIやってる人がいつでもどこでもDIやってると思ってるんだろうか
0561仕様書無しさん
垢版 |
2018/06/23(土) 19:50:03.16
Mochなどと同じで汎用性が欲しい時、テストとかしやすくしたいときに使おうってだけの話だよね
0562仕様書無しさん
垢版 |
2018/06/23(土) 19:51:43.39
>>561
またテストか。DIはテストだけのものじゃないって言ってるだろ
0563仕様書無しさん
垢版 |
2018/06/23(土) 19:54:55.70
クッソ笑える
DI厨全滅かよwww
なーにが「い、いつもDIするわけじゃねーし」(ふるえ声)
だよwwwww
0565仕様書無しさん
垢版 |
2018/06/23(土) 19:58:43.75
じゃあJavaとDIでシステム組んで最後の1つの機能が>>552で、これ移植したら円満にプロジェクト終了って時はどうすんの?
そうなってもいつもDIするわけじゃねーし、だの、1つくらいDIじゃなくても問題ないなんつって逃げそうだよなお前らw
0566仕様書無しさん
垢版 |
2018/06/23(土) 20:07:51.84
>>564
適材適所がわからないんだな
スクリプトでやるようなことをDI使ってやれって、頭沸いてんのか?
0567仕様書無しさん
垢版 |
2018/06/23(土) 20:15:23.96
>>566
やっぱり言い訳するんだ
99%Javaで美しいDIで一生懸命組み上げたシステムの最後のピースがやっつけのスクリプトってさぁ
やれやれだよホント
0570仕様書無しさん
垢版 |
2018/06/23(土) 20:23:34.02
まったくだ
JavaもDIも役立たずのゴミ
スクリプトを書いたほうが短く簡潔で保守性も高まる
0571仕様書無しさん
垢版 |
2018/06/23(土) 20:29:07.45
全ての規模をスクリプトで書くのか
まあがんばれ
0572仕様書無しさん
垢版 |
2018/06/23(土) 20:32:13.56
>>571
少なくともここにいるDI厨はスクリプトでやるらしいぞ
大規模システムの一部という前提を与えてやってもDIでやる場面じゃないだのなんだのと言い訳してDIを拒む
じゃあもうどこでDIすんだって話だよ
0575仕様書無しさん
垢版 |
2018/06/23(土) 20:41:56.64
おうおう
出るわ出るわ負け惜しみ
ここでサクッとJavaのDI使ったコードを書いて黙らせるぐらいのことできんのかねぇ
0580仕様書無しさん
垢版 |
2018/06/23(土) 21:08:21.11
Javaで作るような大規模システムをサクッと書いてよ
0581仕様書無しさん
垢版 |
2018/06/23(土) 21:33:48.06
エクセルの内容をノールックでDBに入れるだけの簡単なお仕事
0583仕様書無しさん
垢版 |
2018/06/23(土) 21:53:04.63
書き直す気力も起きない程の圧倒的ドカタコードを提示する事で
相手のヤル気を削ぐ作戦に出るとは恐れ入った
0587仕様書無しさん
垢版 |
2018/06/23(土) 22:00:27.65
DIは百害あって一利なし
利用者もゼロ
これが現実
0593仕様書無しさん
垢版 |
2018/06/23(土) 22:03:11.72
>>589
できるが無駄が多すぎと言ってる
そもそも出来ない君たちとは違うんだな
0596仕様書無しさん
垢版 |
2018/06/23(土) 22:04:19.06
>>591
そうやって悪口言うしか出来ないんだね
完全敗北ってやつだよソレ
0599仕様書無しさん
垢版 |
2018/06/23(土) 22:05:39.48
>>592
みた結果がこれだよ

>>594
普段からDI推奨してるこのスレの住民ですらお題を出したらまったくDIを使わないということが明るみに出てしまった
0600仕様書無しさん
垢版 |
2018/06/23(土) 22:06:37.64
>>597
ほらまた言った
負け惜しみの悪口はやめて素直に参りましたって言えば良いのの
0604仕様書無しさん
垢版 |
2018/06/23(土) 22:09:16.56
プログラマならコードで語れ
DI派はDI使ったコードを書いてようやっと議論のスタートラインに立てる
でも何を言われても書かこうとしない
負けを認めてんだよ内心ではね
でも悔しいから負けたという事実は言葉にはせず悪口に逃げるんだ
0605仕様書無しさん
垢版 |
2018/06/23(土) 22:10:17.96
>>603
君がお題に対してDIを使ったコードを書いたら1にカウントしてやるよ
0607仕様書無しさん
垢版 |
2018/06/23(土) 22:11:25.14
業務用のコードこんなところで晒して勝った気になるのはまずくないか?
0614仕様書無しさん
垢版 |
2018/06/23(土) 22:21:34.31
そもそもオブジェクト指向もDIも大規模開発の複雑さに立ち向かうための手法なのに、それを理解してない奴が
1ファイルのスクリプトを例に出して、ほらDIなんていらない、とかドヤってんだよなww
0617仕様書無しさん
垢版 |
2018/06/23(土) 22:29:44.72
>>614
雑魚の理論
小さいまとまりの集まりで大きなものを作るんだ
大きくなると造りを変えないといけないんんてのは多分何も作れてないんだそいつ
0619仕様書無しさん
垢版 |
2018/06/24(日) 02:37:42.98
>>552
このくらいの規模だとDIに限らず
関数もクラスもモジュールもクロージャも要らないけど
だからって大きなプログラムで不要な事にはならないよね?

いや、もしかしたらドカタはmain関数で全てやりくりするから不要なのかな?w
0620仕様書無しさん
垢版 |
2018/06/24(日) 02:41:43.67
>>619
もしかして、クラスに分ける=DIを使うと思ってる?
ならアホだよ。

main関数ですべてやりくりするわけ無いじゃん。
DIは使わずにクラスに分けるだけ

はぁ。そんなこともわからんのかね
0621仕様書無しさん
垢版 |
2018/06/24(日) 02:49:59.29
>>552にDIが不要だからって、常にDIが不要な事を示せてないって言ってるだけなんだけど
>>620には理解できなかったみたいだねw
流石ドカタやってるだけあるわ
■ このスレッドは過去ログ倉庫に格納されています

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