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

https://togetter.com/li/1552923 の文脈への反応など。
0
トデス子'\ @todesking

DIパターンはオブジェクトグラフ構築するときに必須と考えてよいと思いますが(IoCはしたいしService Locatorパターンは不要な依存関係を持ち込むので嫌なのじゃ)、DIコンテナのような重量級ソリューションの必要性については意見が分かれるところですね

2020-07-03 02:03:49
トデス子'\ @todesking

よくあるWebフレームワークの場合だとControllerの依存コンポーネントをどっかから注入してやる必要があり、しかしControllerクラスのインスタンス化はフレームワークの役目なので自動的にDIコンテナ相当のものが出現してしまう

2020-07-03 02:10:40
トデス子'\ @todesking

DIコンテナはJava文化だと言われると納得してしまう(たぶん偏見です)

2020-07-03 02:20:49
じょい @joy1192

クリーンアーキテクチャって一般にDIコンテナをフル活用して楽するもんではと思ったらすでにツッコミ入っていた顔

2020-07-03 02:21:59
トデス子'\ @todesking

DIパターンとDIコンテナを混同するんじゃねーよと言いたいんですが言う前に自分で混同しまくったツイートをしている

2020-07-03 02:23:15
もあいぶる🗿 @moaible

DI自体依存性をどう扱うかって話だけど、DIコンテナとなるとだいたいAOPやannotation│decorator的文脈入ってきて依存を流し込むのを抽象化してるから個人的には依存関係が追いづらい、更にシングルトンまで入ってくると寿命も追わないといけなかったりでトラブったときの難易度は上がる気がしてる

2020-07-03 02:42:07
wm3 @wm3

DIコンテナ、言語拡張の側面が強いという認識が広がってほしくて、そうなると「ベースとなるプログラミング言語」と「DIコンテナにより拡張された言語」との棲み分けができてるか、という観点で話ができるんじゃないかと思った。

2020-07-03 02:44:42
つむむむむ @tsumumumu

前にDIコンテナを使いまくる人と仕事したことあるけど、正直うちのプロダクトにはヘビー過ぎたのであまり良い印象ない。

2020-07-03 02:46:25
つむむむむ @tsumumumu

DIコンテナ、バイナリをdllとして差し替える前提の世界観の産物だと思ったんだけど、Laravelが採用してて何も分からんってなった。

2020-07-03 02:48:38
ぽつきち @knight_9999

DIコンテナって、継承を使って機能を拡張していくより、集約やコンポジションを使ってパーツを組み立てていく方が良いという流れから、オプジェクトの組み立て方を強化するために出て来た方法論というイメージ。

2020-07-03 02:56:11
Yoshinori Kosaka @wawoon_jp

DIとDIコンテナは違うのと、後者については自分もなにが嬉しいのかよくわかってない

2020-07-03 03:29:56
Ikeda Daigo @hogedigo

DIコンテナといえば思い出すのだが、私の小学校低学年のときのあだ名はダイコンだった。

2020-07-03 03:39:44
Ikeda Daigo @hogedigo

SeasarってDIコンテナの設定ファイルの拡張子がdiconで親しみを覚えた。

2020-07-03 03:42:44
Yoshinori Kosaka @wawoon_jp

FlutterのInheritedWidgetはDIコンテナの一種だろうけどとても良いと思う

2020-07-03 04:09:13
Yoshinori Kosaka @wawoon_jp

ReactのcontextもDIコンテナとして使える

2020-07-03 04:10:54
z@kuro @zakuro9715

DI というか、DI コンテナ

2020-07-03 05:10:30
GoTo🍛 @tan_go238

何も分かってないけど、DIコンテナ使ってないけどDIするって、ライフサイクルとかも自前で制御してるってことなのかな

2020-07-03 05:50:52
GoTo🍛 @tan_go238

2020年なのにまだDIコンテナの話してるとは10年前は想像もつかなかった

2020-07-03 05:59:44
GoTo🍛 @tan_go238

ちょうど9年前にDIコンテナ作ろうとしてた残骸 github.com/tango238/binder

2020-07-03 06:02:53
Shigeki Shoji @takesection

10年ぐらい前は一度は俺の考える最強のDIコンテナを実装してたはず

2020-07-03 06:04:55
大網 清和 @kiyoami

DIはAPIを定義したclassのインスタンスを引数で渡す。 以上。 でしかないと思うのだが… DIコンテナはDIで渡すインスタンスを管理する仕組みだよね。 twitter.com/n_1215/status/…

2020-07-03 07:01:36
ホリちゃん @YSK8_

DIが話題になってるらしいけど、全然DIについてのTL見受けられないな・・・。 TSでTSyringe導入しようとしたけど、「これ以上の学習コスト耐えられん・・・」と言われ断られた。なのでコンテナ自作した。コンテナの方が使いやすいじゃんってなった。コンストラクタの自由が奪われるのは嫌だと思った。

2020-07-03 07:49:12
なぎせ ゆうき @nagise

「DIから必須とは言えない部分を削ぎ落としていけばDIの中核を見いだせるのでは?」 「なるほど、やってみよう」 …… 「何も残らないのでは🤔」 「では🤔」

2020-07-03 08:12:42
なかざん @Nkzn

@nagise DIコンテナ要素は何も残らなくて、"引数や公開されたフィールドと、そこに割り当てられたインターフェース型によって、依存性をクラスの外に追い出せる"という要素だけが残る感じですかねー(いわゆる手動DIな状態)

2020-07-03 08:25:58
なぎせ ゆうき @nagise

@Nkzn メッセージパッシングで、メッセージの送信相手がすげ変わるようなのを考えていました。 型システムを伴わないケース含めて考えるとインターフェースと言ってるのがやり取りされるメッセージの定めと、送り先なのかなあとか

2020-07-03 08:31:13
残りを読む(91)

コメント

Yeme @yer_meme 2020年7月3日
概念と言語仕様とライブラリと実装と、みたいにレイヤーの違う話が混ざってるから訳わからん事になってる気がするっス。何をDIと呼んでるかが問題な気がするっスね。 因みに概念としてのDIは重要だと思ってるっスけど、ライブラリとしてのDIコンテナは嫌いっス。OOPに囚われて何でもかんでもClass扱いするJavaみたいで好きになれないんスよね……
0