Clean Architecture Part 3 -- Design Principles
Part 3 -- Design Principles
- SOLID原則の教えるところ
- 関数とデータ構造を「クラス」にまとめるやり方
- クラスどうしの相互接続のあり方
- 「クラス」はオブジェクト指向言語を前提とはしていない
- 「ふるまいとデータがまとまったアレ」のこと
- SOLID原則の目標: 「よいレンガ」をつくる
- 下記のようなモジュール
- 変更に強い
- 理解しやすい
- 多くのシステムで再利用可能
- 下記のようなモジュール
- その後で、より高水準の「アーキテクチャ」について学んでいく
- レンガがまずいとよい建造物は作れない
- だが、よくできたレンガでもめちゃめちゃな建造物を建てられてしまう
- SOLIDの昔話
- 統廃合があって今の形になった
- 2004, Michael Feathers氏の指摘でこの順番に
- サマリー
- SRP: The Single Responsibility Principle
- コンウェイの法則からの帰着
- ソフトウェアの構造は、それ使う組織の構造から影響を受けるよ、ってやつ
- ソフトウェアのモジュールの変更理由はただ一つであるべき
- コンウェイの法則からの帰着
- OCP: The Open-Closed Principle
- 1980s、Bertrand Meyer提唱
- 変更のしやすいソフトウェア設計とは?
- 既存のコードを変更するのではなく、新しいコードを追加してふるまいを変えられる設計
- LSP: The Liskov Substitution Principle
- 1988, Barbara Liskovによる派生型の定義
- 交換可能なソフトウェア部品を作るには、Contract(契約)に準拠させなければならない
- ISP: The Interface Segregation Principle
- 使わないものに依存するな
- 【補】使うものだけインタフェースに切り出せってことかな
- 使わないものに依存するな
- DIP: The Dependency Inversion Principle
- 高水準のポリシーと低水準の実装詳細を分ける
- ポリシーは実装詳細に依存すべきではない
- 逆に、実装詳細がポリシーに依存すべき
- SRP: The Single Responsibility Principle
英語
- corollary
- 当然の帰着
- gist
- 要旨