DI に DI コンテナは不要か?

なぜ俺の TL で DI コンテナの話題が盛り上がっているのか? その謎を解明すべく、我々はアマゾンの奥地へと向かった。 この文脈への反応などは別まとめに。 https://togetter.com/li/1552927
3
前へ 1 2 ・・ 8 次へ
Yusuke Nojima @nojima

@ababupdownba すみません。意図が伝わりにくい文章でした。同じ量のコードを書いたとしてもJSよりもElmのほうが複雑度が低そうという意図です。

2020-07-02 23:10:17
ABAB↑↓BA @ababupdownba

@nojima ふむふむ さらに突っ込んで聞きたいのですが、すなわちいずれかはelmも複雑度がjs同等となり DIが必要になると言う仮説でしょうか?

2020-07-02 23:12:05
ABAB↑↓BA @ababupdownba

@nojima おそらく違うのではないかと言う仮説を持ってます。 fringeneer.hatenablog.com/entry/2019/12/… 日本だと最大規模に近いelmプロダクトのuniposで、いろんな課題を聞いてますが そのような話を聞いたことがないのですよね

2020-07-02 23:21:32
Yusuke Nojima @nojima

@ababupdownba 「影響範囲がわからない」みたいや悩みってないですか?

2020-07-02 23:32:18
ABAB↑↓BA @ababupdownba

@nojima 何に対する影響範囲でしょうか?

2020-07-02 23:34:31
ABAB↑↓BA @ababupdownba

@nojima もうちょっと情報が欲しいです 例えば、代数的データ型構造の変更や型の変更はコンパイラが確実に検知するので、そう言った変更は漏らしません しかし、言われているDIカバーするコードの変更はまた別なニュアンスな気がします

2020-07-02 23:38:41
Yusuke Nojima @nojima

@ababupdownba 例えば「軽減税率を実装するためにあるロジックを書き換えたんだけど、思いもよらないところに影響が出たりしないだろうか」みたいなやつです。 自分で書いといてなんですが、Elmだと型で大体わかりそうな気がしてきました。

2020-07-02 23:43:40
ABAB↑↓BA @ababupdownba

@nojima んー その場合、テスト気付けると思います。 DIでテストが書きやすくなるの文脈であれば、elmでテストが書けない状況を作る方が難しいので

2020-07-02 23:49:54
ABAB↑↓BA @ababupdownba

@nojima または、軽減税率をした後という値に型を作ればコンパイル時に型で防げますね qiita.com/arowM/items/01…

2020-07-02 23:51:36
Yusuke Nojima @nojima

@ababupdownba そうですね。DIが欲しくなるケースって「テスト書きたいのに依存が邪魔で書けない」みたいなパターンが多いので、これが回避できるのならDIなしでも大丈夫なのかもしれません。

2020-07-03 00:07:23
ABAB↑↓BA @ababupdownba

@nojima はい elmをやると今までの常識が常識で無くなることが多いのでオススメです …と言っても自分はまだ上手く言語化出来ていないので、とても良い気付きをありがとうございました。楽しい議論でした!

2020-07-03 00:11:27
がくぞ @gakuzzzz

それはそう。 LispなりHaskellなりで書かれたアプリケーションは大抵DIとか意識してないでしょうし(継続なりReaderなりで簡単に依存を分離できるので twitter.com/ababupdownba/s…

2020-07-03 00:38:53
ABAB↑↓BA @ababupdownba

DIってDIするしか解決策がない もしくは、DIしないとやってられない状況だから使ってるだけで DIがないとアプリケーションが作れない つまり必要条件?ではないよね

2020-07-02 22:19:50
がくぞ @gakuzzzz

WikipediaのDIのページ見るとWebComponentのslotもある種のDIだよねと書かれてて面白いですね。ElmにもSlotの概念て有るんでしたっけ?もし有るならElmにもDIが存在してると言える???

2020-07-03 00:48:35
ABAB↑↓BA @ababupdownba

@gakuzzzz そんな洒落たものはないですねー

2020-07-03 00:53:19
がくぞ @gakuzzzz

@ababupdownba package.elm-lang.org/packages/edkv/… これは標準ではなくサードパーティライブラリですかね?

2020-07-03 00:56:20
ABAB↑↓BA @ababupdownba

@gakuzzzz おそらく…そうですね というのも、今はsignalの考えをしていないので、だいぶ古いelmのパッケージでどう言った使われ方をしていたか知らないためです

2020-07-03 01:08:49
Yusuke Nojima @nojima

@gakuzzzz レコードに関数を詰めて渡すことでElmでもDIができます

2020-07-03 01:10:16
がくぞ @gakuzzzz

@nojima 引数として渡すタイプの高階関数はDIに含まれるというご意見でしょうか?

2020-07-03 01:14:53
Yusuke Nojima @nojima

@gakuzzzz DIの実装手段として高階関数が使えるという意見です。(任意の高階関数がDIであるという主張ではないです)

2020-07-03 01:18:23
がくぞ @gakuzzzz

@nojima なるほど、ありがとうございます!高階関数でモジュールの依存関係を切り離せるというのは僕も同様の認識です。様々ある依存関係を分離するための手段のうち、特定の手段のみを世間がDIと読んでいるように思えており、レコードに関数を持たせるのをDIと呼んでいいのか個人的に迷っておりました

2020-07-03 01:41:42
Yusuke Nojima @nojima

@gakuzzzz たしかに世の中にはDIコンテナを使わなければDIではないと主張する人もいますね…

2020-07-03 01:48:21
ABAB↑↓BA @ababupdownba

あー elmがアクターモデル説が正しいなら scalaでもakkaで 例えばrepositoryをアクターとしておけばDIとかせずに依存をきっちり分離できるじゃんか DBをカプセル化できるからメッセージが投げられたらただのデータを保存するインスタンスになるわけだ

2020-07-03 01:11:15
n @n_1215

ドメインって言葉を適当に使いすぎてる

2020-07-02 23:26:21
前へ 1 2 ・・ 8 次へ