【Clean Architecture】第Ⅲ部 SOLID原則

「Clean Architecture」の学習記録。
「第Ⅲ部 設計の原則」のまとめ。

クリーンなコードを書く原則として「SOLID原則」がある。
これは関数やデータ構造をどのようにクラスに組み込むか、そしてクラスの相互接続をどのようにするのかを教えてくれる。

SOLID原則の目的

SOLID原則の目的は以下のような性質を持つ中間レベルのソフトウェア構造を作ることである。 - 変更に強いこと - 理解しやすいこと - コンポーネントの基盤として、多くのソフトウェアシステムで利用できること

「中間レベル」とはモジュールレベルの開発に使われることを意図している。
つまりコードレベルよりも上のレベルに適用するものであり、モジュールやコンポーネントで使うソフトウェア構造の定義に役立つものである。

SOLID原則の概要

  • 単一責任の原則(SRP: Single Responsibility Principle)
    • 個々のモジュールを変更する理由がたったひとつだけになるようにする。
  • オープン・クローズドの原則(SRP: Single Responsibility Principle)
    • 既存コードの変更よりも新しいコードの追加によってシステムの振る舞いを変更できるようにする。
  • リスコフの置換原則(LSP: Liskov Substitution Principle)
    • 交換可能なパーツを使ってソフトウェアシステムを構築するなら、個々のパーツが交換可能となるような契約に従わなければいけないということ。
  • インタフェース分離の原則(ISP: Interface Segregation Principle)
    • ソフトウェアを設計する際には、使っていないものへの依存を回避すべきだという原則。
  • 依存性関係逆転の原則(DIP: Dependency Inversion Principle)
    • 上位レベルの方針の実装コードは、下位レベルの詳細の実装コードに依存すべきではなく、逆に詳細側が方針に依存すべきであるという原則。