人柄は良いがビギナーレベル

育児とプログラミングに追われる毎日

Clean Architecture 第10章 ISP:インターフェイス分離の原則

この記事について

覚え書き

インターフェイス分離の原則(ISP)は言語の問題であり、アーキテクチャの問題ではないと考える人もいるかもしれない

必要としないモジュールに依存することは一般的に有害とされる。ソースコードの依存関係に置いては、再コンパイルや再デプロイを強制されるので明らかに有害であることがわかる。だがさらに上位のアーキテクチャレベルにおいても有害なのだ

  1. モジュールレベルではインターフェイス分離の原則に則ることで不要なコンパイルやデプロイを軽減することができる(静的言語に限定された話し)
  2. アーキテクチャレベルでのインターフェイス分離の原則のメリットは?
    1. 例> アプリケーションがフレームワークに依存しており、フレームワークがデータベースに依存している場合、データベースが更新されたらフレームワーク、アプリケーションを更新しなければならない
    2. フレームワークがデータベースに依存していることで利用していないデータベースの機能の更新でもフレームワークを更新しなければならない
    3. フレームワークがデータベースに依存していなければデータベースの更新だけで済むはず

まとめ

  • モジュール間のみではなくフレームワークやツール間での影響についても意識できるようにしたい
  • 変更が発生しないのであれば依存させたり、変更が頻発するのであればインターフェイスを利用したりして疎結合にするなど状況によって使い分けられるようになりたい