なぜ依存を注入するのか DI の原理・原則とパターン(ナゼイゾンヲチュウニュウスルノカ ディーアイノゲンリゲンソクトパターン)
- 著者:
- Steven van Deursen/Mark Seemann/須田智之(スティーブンヴァンドゥールセン/マークシーマン/スダトモユキ)
- 出版社:
- マイナビ出版
- 出版日:
- 2024年05月17日頃
- ISBN:
- 9784839983062
- 価格:
- ¥4,796
- シリーズ:
- Compass Booksシリーズ
- 在庫:
- 1
- 判型:
- 単行本
なぜ注目されているか
書籍紹介
依存注入 (Dependency Injection: DI) は関連性のあるパターンや原則を集めたものであり、その第一の目的は保守しやすいソフトウェアを構築することにあります。サンプル・コードに C#を用いていますが、扱っていることの多くは他のオブジェクト指向プログラミング言語やプラットフォームでも適用できるようになっています。
・依存注入とは何か? なぜ・どのように使うのか
・疎結合なコードで構築されたアプリケーションの分析・評価
・有用な設計パターン、アンチ・パターンのカタログ
最初から最後まで一貫して依存注入について見ていくのですが、より優れたオブジェクト指向のプログラミングが行えるようになることも本書の目標としています。ドメイン駆動設計やクリーン・アーキテクチャに関する既刊書があまり触らなかった部分にスポット・ライトを当ててくれるような内容にもなっていますので、設計に関する既刊書を読んだあとに抱えていたモヤモヤしていた部分を、依存注入の観点から明確にしてくれる可能性が本書にはあります。
Manning Publishing: Dependency Injection Principles, Practices, and Patterns の翻訳書
第 1 部: 依存注入 (Dependency Injection: DI) の役割
第 1 章: 依存注入 (Dependency Injection: DI) の基本: 依存注入とは何なのか?なぜ使うのか?どのように使うのか?
第 2 章: 密結合したコードで構築されたアプリケーション
第 3 章: 疎結合なコードへの変換
第 2 部: カタログ
第 4 章: 依存注入のパターン
第 5 章: 依存注入のアンチ・パターン
第 6 章: コードの嫌な臭い (code smell)
第 3 部: 純粋な依存注入 (Pure DI)
第 7 章: オブジェクト合成 (object composition)
第 8 章: オブジェクトの生存期間 (lifetime)
第 9 章: 介入 (interception)
第 10 章: 設計だけで実現するアスペクト指向プログラミング (Aspect-Oriented Programming: AOP)
第 11 章: ツールを用いたアスペクト指向プログラミング
第 4 部: DI コンテナ
第 12 章: DI コンテナとは?
第 13 章: DI コンテナ: Autofac
第 14 章: DI コンテナ: Simple Injector
第 15 章: DI コンテナ: MS.DI (Microsoft.Extensions.DependencyInjection)
用語集・参考文献
言及 Qiita 記事 (24 件)
その設計、変更に強いですか?単体テストできますか?...そしてクリーンアーキテクチャ
♡ 424Go, 設計, アーキテクチャ, CleanArchitecture新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー
♡ 323オブジェクト指向, プログラミング, 初心者, 設計, whi-adventなぜ複雑な業務ロジックの実装をスムーズに開発できたのか:基幹システム移行でTDD/DDDを実践した理由
♡ 133DDD, ドメイン駆動設計, ユニットテスト, 設計ノウハウアーキテクチャについてなんでそんなに議論するの?という話
♡ 44勉強会, アーキテクチャ, #LTPdM、PjM(PM)としての個人的なリンク集
♡ 31開発, リンク集, プロダクトマネジメント, プロジェクトマネジメント, 金融【C#】Interfaceをデリゲートのように扱って規約実装を伝播させる設計パターン
♡ 23C#, デザインパターン, DependencyInjection, interface, AdventCalendar2025PythonでDIフレームワークを使う意味
♡ 17Python, DI, DependencyInjection🤤 僕の考えた最強の次世代Webアプリケーションアーキテクチャ(進化論) v1.2.0
♡ 6Laravel, アーキテクチャ, CQRS, HexagonalArchitecture, CleanArchitectureUnityエンジニアのための設計入門④ クリーンアーキテクチャ入門
♡ 5Unity, 入門, 設計, CleanArchitecture, オニオンアーキテクチャ【実践編】テストピラミッドを用いてAWS CDKインフラ開発のテスト戦略を模索する
♡ 4AWS, テスト, CloudFormation, aws-cdk, CDK
この本に興味がある方におすすめ
この本に関連
関連記事
設計の引き出しは経験だけでは増えない
実務経験だけでは設計の引き出しに限界があります。なぜ経験だけでは不十分なのか、本が設計力に対して果たす、他で代えにくい役割を論じます。
設計 / アーキテクチャ本ガイド - 設計力を上げる技術書の選び方
ソフトウェア設計を学べる技術書をコード / モジュール / システムの 3 レイヤーに分類し、レベルに応じた読む順番の指針を紹介します。
あの有名 OSS のコードは、この本の影響を受けている
広く使われているオープンソースソフトウェアの設計には、技術書と共通の語彙や原則が残っています。OSS のコードから辿れる影響と、似ているだけの例の見分け方を整理しました。