DI に DI コンテナは不要か?(その後)

https://togetter.com/li/1552923 の文脈への反応など。
0
wada811 @wada811

DI 盛り上がってるけど震源がわからなかった 誰か早く (Dagger|Koin|任意のDIコンテナ)のやめ方の記事書いて流れかえて

2020-07-03 09:27:26
mattn @mattn_jp

DI コンテナが無いと動かないって所がモヤモヤするところ。

2020-07-03 09:32:30
Ryo Egawa @er11161

DIとDIコンテナに関してお気持ち表明してる人多いけど、これ議論の大元はなんなんだろう?

2020-07-03 09:32:38
Masashi Shinbara @shin1x1

なんか TL が DI コンテナで溢れている。インジェクトは、コンストラクタインジェクトで良い。Auto-Wiring はあると楽だけど、interface を型に指定するとインジェクトするクラス(インスタンス)は指定する必要がある。

2020-07-03 09:32:53
Kazuhiko Kikuchi @kazuk

エラー処理で主処理が複雑化するのを嫌って、処理が始まる前段階のコンストラクタに持っていくのの繰り返し&それをDIコンテナになんとかさせて一端はハッピーな気持ちにはなったが、 diskfull とか実行時エラーが起こるのは避けられなくて結局エラー処理を足してくと中途半端な気分になるって話?

2020-07-03 09:34:44
Masashi Shinbara @shin1x1

@shin1x1 DI, DI コンテナは blog に書いてました。 blog.shin1x1.com/entry/di-memo #phpgenba で話してた回です。 php-genba.shin1x1.com/7

2020-07-03 09:34:45
Shinji Kono @shinji_kono

おお確かにDIコンテナの話は出てるが、みんな勝手に話してて連係まったくないな。こういうの面白い。

2020-07-03 09:35:14
Kei @Kei_Acarroll

これを僕に教えてくれた先輩がなぜかS3Clientの生成をDIコンテナに任せず、謎にHelperと名付けたクラスから静的呼び出しでインスタンス生成してたことがありましてねぇ

2020-07-03 09:37:01
po @podhmo

DI、概念としてはあると便利だけど、コンテナが必要かというと

2020-07-03 09:37:12
NAKAMURA Atsushi @nuits_jp

DIコンテナを使う理由はそうなんだけど、なんでDIするか?の答えにはなっていないような 個人的には依存の解決はPullするかPush(Injection)するかしかないと思っていて、PullはStaticなリポジトリへ依存しないといけなくなるからDIするんだけど 前にこの辺にかいた nuits.jp/entry/servicel… twitter.com/t_wada/status/…

2020-07-03 09:41:01
Takuto Wada @t_wada

依存の注入はコンストラクタでやろう ↓ 依存と生成知識がシステム中に散らばる ↓ 生成知識をファクトリーで隠蔽しよう ↓ 今度はファクトリーがシステム中に散らばる ↓ ファクトリーはシステム中にDIコンテナひとつでよくね? ↓ DIコンテナが依存と生成知識を一括管理し、秩序と調和が訪れる(完)

2020-07-03 08:42:20
名人|マナリンクCTO @Meijin_garden

「低結合高凝集にしませう」とか「DIコンテナに依存した巨大クラス避けませう」とか抽象的すぎるから、分かりやすく「1クラス1パブリックメソッドでいこう」でええやん それなら誰でも理解できるし最悪な実装にはならんやろ💣💣💣

2020-07-03 09:48:03
wada811 @wada811

任意のDIコンテナのやめ方 1. まず Java を滅ぼします 2. すべてが Kotlin になったらコンストラクタDIでデフォルト引数に指定しつつ差し替え可能にします 3. View 層は Application から取ってきます 以上?

2020-07-03 09:48:09
NAKAMURA Atsushi @nuits_jp

正直dicon世代のDIコンテナって、XML HellからのDIに対するアレルギーを埋め込んでしまった気がしていて、あまり好きではない。 埋め込まれたの、私の事ですけどね

2020-07-03 09:50:38
Takuma SHIRAISHI @ts7i

DI 議論において、重いコンテナと軽いコンテナと出来損ないの自前コンテナもどきの違いはあっても、「DI パターン」と DI コンテナの違いなんてないよ。

2020-07-03 09:51:28
Lordにゃんだーすわん卿 @tadsan

なんでDIコンテナ使うのかって? 特に副作用を起こすようなオブジェクトを全部交換可能なパーツとして扱いたいから

2020-07-03 09:51:41
Naoki Takezoe @takezoen

コンパイル時にチェック可能なDIコンテナ/フレームワークもありますねぇ。

2020-07-03 09:54:48
Math.min() @kirimin

依存の注入はコンストラクタでやろう ↓ 依存と生成知識がシステム中に散らばる ↓ 生成知識をファクトリーで隠蔽しよう ↓ 今度はファクトリーがシステム中に散らばる ↓ ファクトリーはシステム中にDIコンテナひとつでよくね? ↓ 今度はDI定義がシステム中に散らばる(一番追いにくい形で)

2020-07-03 09:55:00
Takuto Wada @t_wada

@kirimin DI 定義がシステム中に散らばるタイプの DI コンテナを使うと台無しになる例ですね……

2020-07-03 10:01:48
いらないおじさん跡地 @king_gomi_man

DI コンテナに頼りきりでオブジェクトの生成が困難になるの、それだけそのオブジェクトが依存関係持ちすぎてるというだけなので DI が悪いとかではないような

2020-07-03 09:55:10
たにけい @ravineport

お、なんでDIコンテナの話題で盛り上がってるんだ?

2020-07-03 09:55:31
dairappa🐚ଳ @dairappa

みんなDIとDIコンテナごっちゃにしすぎじゃない?

2020-07-03 09:56:08
ホリちゃん🛹💻 @YSK8_

DIはPushかPullか、pullはコンテナに依存するからpushでインジェクション。 でも、pushはDIコンテナのライブラリとかFWに依存するじゃない。 なぜそこは依存して良い事になるのだろうか。 ロジック内に依存が紛れ込むのがダメだって事かな?注入ならロジックが純粋な状態になる。

2020-07-03 09:58:32
kou @kou_hon

密結合というペインを解消するためならAndroidだったらKotlinのコンストラクタインジェクション+デフォルト引数で可能で、作りたてで小規模なアプリならそれでもいいかも(゜-゜)大規模になって別のペインが出てきたらそれを解決するDIコンテナなりなにかを導入すればいいわけで。

2020-07-03 09:58:34
Yasushi Abe @yasushia

clojure はここで言うDIとは違うかもだけど、mount とか component とかのライフサイクル系のコンテナはよく使われてる気がする

2020-07-03 09:59:39
さいたまさいたま(お休み中) @saitamasaitama

DIがどうとかを本質の部分で語れる程は詳しくねーけど、DIコンテナを今ある形で設計した人は大分色んな人に恨まれてると思うぞ。 依存情報を参照するのに定義を探す必要があるってなんの冗談だって未だに思ってる。

2020-07-03 10:01:24