2020/07/10 06:25
takatama
DIって名前がカッコイイから勘違いしている人もいるけれど、単体テストのために使うんですよねー
2020/07/10 08:48
sasagin
DJに見えた
2020/07/10 08:51
camellow
DJって他人が作った曲を流すだけなんだし事前にプレイリスト作っておけば済むじゃんね。何のためにいるんだろ。/ まさかDJマジレスブコメがトップになってるとは… 「わからない人」を演じただけなのに…
2020/07/10 08:54
n314
DIからインターフェースで呼び出す正統派と、実装クラスで呼び出すauto wiring過激派があると思う。
2020/07/10 09:21
mr_yamada
死亡状態の味方を生き返らせる。失敗すると死体は灰になる。
2020/07/10 09:46
shinobue679fbea
少なくとも5年前には常識に近くなってたと思うので最近の、という言い方に違和感があるけどフロントエンドに毒されてるよねこれ。主流技術ってのは廃れず続くものだ
2020/07/10 10:28
surume000
オレ過激派だなあ。だってインターフェースかさばるじゃん
2020/07/10 10:34
laiso
分かりやすい。インターフェースを活用して疎結合にしたコードの補助的に使うイメージだった
2020/07/10 11:01
faaaaa
DJかと
2020/07/10 11:08
mogitatec
DI関係なくて申し訳ないけど、DJ何のためにいるのって人はちゃんとしたDJがいるイベントの楽しさを知ってほしい。他人の曲でも聴かせ方や順番で全然違うものになるんだよ…。/無関係ブコメに星もらって複雑
2020/07/10 11:15
kazuau
著者のプロフィールにちょっと引いてしまった。愛が重すぎる。
2020/07/10 11:20
peketamin
わかりやすかった!感謝
2020/07/10 11:24
stealthinu
DIってなんのために生まれたんだろ?と思ってはいた。やっぱ元々テストでの依存関係を解決するためのものって理解でいいんかな。
2020/07/10 11:47
maiani
DJの話で盛り上がってるのを見ると、はてブって意外とITエンジニア率が低いのかもしれない。
2020/07/10 11:57
junnishikaw
まぁ、割り込みはおいおい覚えていけばいいから最初はそれでいいかも(Z80脳) 。
2020/07/10 12:03
pavlocat
分かりやすい
2020/07/10 12:12
mtfscd
超関係無いけどDJとプレイリストの違いが分からないの、生放送と収録した番組の違いって言ったら分かるかな
2020/07/10 12:12
crexist
いや、違くない?この説明だとFactoryでいいという話になるよね(筆者もテストのMockingが容易ならDIいらないと言ってしまってるのでその認識っぽい)。重要なのは依存を隠蔽することだよね。どっかで記事書こう
2020/07/10 12:25
monbobori
DJについてアクロバティックにQiitaで説明して怒られるやつかと思ったら違った
2020/07/10 12:32
by-king
なんでライブで楽器のケーブル刺すやつの説明してるんだと思ったら違った
2020/07/10 12:35
lalupin4
理解しているつもりだが納得していない技術。
2020/07/10 12:46
wonderword22
AdaptiveCodeで見たやつだ。このサンプルだけ見ると、クラスとクラスの委譲関係が分かりづらいので、適度に一時変数用意してクラス生成していく方が個人的には好き。
2020/07/10 12:50
toaruR
悪い薬打つみたいな響き
2020/07/10 12:56
hatest
DJってDIコンテナと同じ役割だよね。他人が作った曲(結合度の低いコンポーネント)を場の雰囲気(処理の流れ)に従って流す(インスタンス化して注入する)からね。
2020/07/10 13:06
regularexception
DLはなんのためってそりゃぁ・・・あ、DIか
2020/07/10 13:16
uxlayman
DI理解できない人、一定数いてつらい。シングルトン作っちゃうとか、静的ユーティリティクラス作っちゃうとか
2020/07/10 13:21
rs250
超大規模システムといえばwindowsってOSがあるんだけどOS自体がDIコンテナと言えなくもない。system32 フォルダ内の大量のDLLはCOM/WinRTインターフェイスの実装で、インターフェイスだけで呼び出せるように登録されている
2020/07/10 13:25
panzer-jagdironscrap1
autowiring過激派は草。実装をdiで呼び出すのはやめるんだ
2020/07/10 13:36
kachine
依存性の注入もインピーダンスのマッチングも、大多数の人は知らなくても全く困らないという意味では同じ話だな。
2020/07/10 13:37
ad2217
教会を使ったほうが安全。
2020/07/10 14:01
polymoog
PAの話かと思ったら違った
2020/07/10 14:16
kikuchi1201
テストがしやすくなる→テストがしやすい状態というのは後から変更しやすい という文脈があるので、テストが必要ない所だと「?」というのはあるかもしれん
2020/07/10 14:27
hakob
DJの話やめろめろ。 / DIコンテナの記述が面倒だったがゆえに皆が「テストのためだけにメリデメ合わなくね。なんのためにこれするのか分からない…」って思ってるんじゃないかと。よいDIコンテナが必須
2020/07/10 14:28
quabbin
こうしてテスト用途が主という誤った考えが生まれるんだよなぁ。コンポーネントとコンポーネントの結合を疎にし、短くて簡素で柔軟なプログラムを生むのに使うのが正しいのだけど/それにつけてもDJイベントの楽しさよ
2020/07/10 14:47
ghostbass
メソッドのそこかしこに現れる new FooService()を排除するためには超有能。スタティックおじさん連中は new ()するのが嫌なのか、 FooService.DoWhat()とかやりたがるけれどもマルチスレッド環境でそんな恐ろしい事はできないし。
2020/07/10 14:50
Harnoncourt
Drug Informationですよね。添付文書とか。
2020/07/10 14:57
t-ueno
分かりやすいDI & ブコメww
2020/07/10 15:28
miyataro32
ちょっとしか読んでないけど、技術の歴史を踏まえないと正しい理解を持てないという典型に見える。new Object()→Factoryパターン→DIという発展の中の最初の矢印しか説明してないのでDIを理解してない人に見えてしまう
2020/07/10 15:34
qtamaki
「DIは単体テストのため」というのはいささか丸めすぎでは
2020/07/10 16:20
morita_non
むかーしspring2とか使ってたような…データソースやライブラリをゴリッと変えたりするようなフットワーク軽い上層部と仕事をしたことはないな…
2020/07/10 16:23
ryuzi_kambe
DI (ディスクジョッキー ) って何のためにするのかわからない人向けに頑張って説明してみたアゲ太郎的なQiitaがあったら読んでみたい
2020/07/10 16:47
syukit
ブコメと合わせてめっちゃよく理解できた。完全に理解はしていない。
2020/07/10 17:17
shikiarai
DJってみんな言うからJavaのフレームワーク作っていなくなったと思ったら急にDJとして浮上してきた彼のことを思い出してしまった
2020/07/10 17:20
moneycubed
割り込み禁止の話ではなかった
2020/07/10 17:30
linq
ダークイリュージョンの話ししてる
2020/07/10 17:36
ten-gallon-Mouse
“ 実際にはフレームワークに DI コンテナが組み込まれていることが多くてコンテナのインスタンスを自分で作ったり、コンテナから自分でインスタンスを明示的に取得することは少ないです。利用者がするのは、インター
2020/07/10 17:58
hetarechiraura
ITエンジニア、というかまともにソーシャルブックマークしている人は無言ブクマが多くスター付与も少ないイメージ。ブコメ職人はソーシャルブックマークを使いこなす知能が無いのでDJのことしか分からない。
2020/07/10 18:15
kabuquery
やっぱり難しい
2020/07/10 19:32
hdampty7
DIは部分的に適用するのが吉だと思ってる。落ちたときに原因とは別のエラーメッセージになってしまうことが多くてデバッグがしんどい。他方で新機能追加でも定型化してあるとノーテストでいけたりする。
2020/07/10 19:36
knakamura1977
すごい分かりやすい。こんなふうに説明できるようになりたいなー。
2020/07/10 20:08
kno
何のためには知ってたけど、そのためにしなきゃないあれやこれやがしんど過ぎる
2020/07/10 20:09
moriken1098
愚者はクソ設計からDIの有り難みを学ぶ事になるからへーきへーき 分からない人はどこの馬の骨かも分からん奴の記事読むよりフレームワークの解説書買うなりしてちゃんと学ぼうな
2020/07/10 20:45
NOV1975
「テストのため」に見えちゃう記事はよくないが、「テストが楽になると聞いて」でちゃんと学ぶ人が増えるのは良い
2020/07/10 20:46
habarhaba
テスト可能なまともなコードを書こうとしたら自然とDIになるよ。
2020/07/10 21:07
nori__3
エレアコをつなぐヤツやろ
2020/07/10 22:20
imash
Dlかと思ったら違った
2020/07/10 22:35
takopons
説明のために単体テストを例に挙げてると思うが、単体テストの簡単化は副次的なものであって、目的は疎結合では? クラス間の依存度を下げるため。 猫型蓄音機さんの記事→nekogata.hatenablog.com
2020/07/10 22:45
kjin
エレキベース等のダイレクトボックスかと思ったけど違うか。この略称はこういう業界で、こういう意味で使われてるてのを網羅した同音異義語辞典とかないかな。Wikipediaもあるんだろうけど。
2020/07/10 22:59
chiroruxx
この説明だとテスト書かないならDI要らないって話になりそう。世の中にはテスト書かないけどDI使ってる人は多いよ。
2020/07/11 01:26
KAZ99K
ギターのジャックとカラオケ機のマイク端子は同じ形状だけど直で繋ぐと抵抗(インピーダンス)や入出力電圧レベル(dBV)が大きく違うので音が割れたり最悪機器にダメージを与える。コレを適切な値に変換してくれるのがDI
2020/07/11 10:46
prograti
欲を言うとService Locatorとの違いがあるともっと良いかなと思いました。ちょっと話が小難しくなりますが。