
DIすると何がいいんだっけ
BRANK
はじめにこんにちは、majimaccho です。読者の皆さんは最近、DI(Dependency Injection:依存の注入)してますでしょうか。DI は素晴らしい仕組みである一方で全く DI しない Ruby on Rails のようなフレームワークが支配的な時代もありました。それでも DI は今でも有用な考え方として残っている中で、DI にどう向き合っていけばいいのでしょうか。自分なりに考えをまとめるために調べてみたので、同じような疑問を持っている方に参考になれば幸いです。TL;DR単純にコード量が増加することに加え、DI の仕組み自体が複雑さを内包しているので開発生産性が低くなることがあります。そのため、DI は言語によっては局所的かつ限定的に利用する方が良い場合があります。いくつかの工夫によって DI が持つメリットを享受しつつ、不要な複雑さを排除して、シンプルかつ堅牢なコードを実現することができます。なぜ依存を注入するのかなぜ依存を注入するのか DI の原理・原則とパターンでは DI を導入する目的について以下のように説明しています。ソフトウェア開発において依存注入は導入すること自体が目的なのではなく、目的を達成するための手段でしかありません。依存注入…