@t_wadaのDI話

2
太一 @ryushi

t_wadaがDIについて語っているとのことなので聞いている。fukabori.fm/episode/48

2021-05-10 14:57:30
太一 @ryushi

教科書的な説明を最初はしているな。

2021-05-10 15:00:54
太一 @ryushi

DIContainerの有用性を説明するにあたって最も難しいのは、オブジェクトライフサイクルを自動管理することの意義や意味をどうやって伝えるか?ってところだけど、t_wadaはなんて言ってるかな?まだ、そこまでは聞いてないから楽しみ!

2021-05-10 15:25:08
太一 @ryushi

アレクザンダーの件には言及しないんだな。

2021-05-10 16:25:04
太一 @ryushi

設計意図を効率よく伝えられることが良さなら、それが広く誤解されていることで、設計意図が伝わらないことが悪さ。大体の人間は原典を読まない。

2021-05-10 16:26:17
太一 @ryushi

また、原典で想定している課題設定と目の前の課題が本当に一致しているのかどうかを検証するというのは、より高度な知見が必要になる。

2021-05-10 16:27:21
太一 @ryushi

意識しなくてよくなったものとしては、Flyweightパターンなんかもそう。元々GoFのパターンに含まれていることがちょっと奇妙なレベルの抽象度であったし。

2021-05-10 16:42:00
太一 @ryushi

パターンに対する言及において、実装コードの再利用可能性を主たる価値として説明するのは筋が悪いと考えている。

2021-05-10 16:47:15
太一 @ryushi

必要なのは設計の再利用であり、関連するパターンとの関連を理解することで自分の設計に関する抜け漏れを見つけること。つまり、目の前にある設計の妥当性を検証できることです。

2021-05-10 16:49:14
太一 @ryushi

DIコンテナ汚れ説を唱えるt_wada

2021-05-10 17:43:06
太一 @ryushi

DIコンテナ黒子説を唱えるt_wada

2021-05-10 17:48:50
太一 @ryushi

DIコンテナからテスタビリティの話への繋ぎこみから、そうすると儲かると言い出した。論理飛躍がヤバすぎて何度か聞きなおした。

2021-05-10 17:51:21
太一 @ryushi

DIコンテナの実装について問われ「DIコンテナって誤解を恐れずにいうならmapとかdictとかhashみたいなやつです」などと言い出すt_wada。誤解恐れな過ぎてヤバい。直前の話とつながってなさすぎる。

2021-05-10 17:53:27
きしだൠ(K1S) @kis

@ryushi それはDIコンテナのコンテナ部分の話ねー

2021-05-10 18:46:21
太一 @ryushi

@kis 直前の話からの繋ぎでいうなら、Factoryの集合がDIコンテナですって言った方が良かったように思うんだよね。mapだのdictだのって言い出すのはちょっと唐突だと感じた。

2021-05-10 18:57:29
ヨシオリX @yoshiori

@ryushi @kis その前の「シングルトンパターンは死んだ、DI の誕生と無関係では無い」からの流れだからじゃない?

2021-05-10 19:00:39
太一 @ryushi

@yoshiori @kis シングルトンの話も奇妙だなって思ったんよな。DIコンテナ内でのシングルトンはどのDIコンテナでもやってることで、DIコンテナが管理対象オブジェクトのインスタンスをキャッシュするなら、それはおおむねシングルトンだよね。

2021-05-10 19:11:19
太一 @ryushi

@yoshiori @kis つまりさ、シングルトンパターンはある種の実装方式が妥当でなくなっただけで死んでない。なのにもう死んだとか言い出すのは、分かってない人間を混乱させるだけだと思うんよね。

2021-05-10 19:21:11
太一 @ryushi

デザインパターンは実装イディオム集ではなく、様々な環境で繰り返し現れるものであるというスタンスを取るなら、特定の実装方式が不要になったくらいのことで当該パターンは死んだと言い出すのはおかしいと僕は考えます。

2021-05-10 19:23:52
太一 @ryushi

実際問題、現在使われているDIコンテナの管理対象オブジェクトに対する設定においてSingletonというキーワードは頻出するわけでさ。

2021-05-10 19:28:21
太一 @ryushi

なお、DIコンテナの話は後半に持ち越された模様。第二回楽しみにしています!fukabori.fm/episode/48

2021-05-10 19:31:05
渋川よしき @shibu_jp

@ryushi 言語が発達して言語仕様に組み込まれたら、特定の実装はされなくなるけど生きているので、言語ランタイムに溶け込んだといえるので、これはまさにデザインパターン補完計画と(ry

2021-05-10 19:37:01
太一 @ryushi

@shibu_jp Iteratorはそういうものとして説明されていましたね。僕の認識ではFlyweightこそが言語ランタイムや標準ライブラリに取り込まれて誰も意識しなくなったパターンの筆頭だと考えています。

2021-05-10 19:40:08
太一 @ryushi

僕としては、GoFのパターンには単なるイディオムとしか理解できないようなものがそれなりに含まれているので、デザインパターンは実装イディオム集でもあると考えています。なので、デザインパターンは設計集であって、イディオム集ではないって言われてると、認識に相違がありますねってことになる。

2021-05-10 19:54:19