第ⅳ部:Clean architecture コンポーネントの原則
- 2. 前回まとめ
- 単一責任の原則
- (SRP:Single Responsibility Principle)
- 変更する理由がたった一つだけになるように
- オープン・クローズドの原則
- (OCP:Open-Closed Principle)
- 拡張に対しては開いていて、修正に対しては閉じていなければならない
- リスコフの置換原則
- (LSP:Liskov Substitution Principle)
- 個々のパーツが交換可能となるような契約に従わなければいけない
- インターフェイス分離の原則
- (ISP:Interface Segregation Principle)
- 使っていないものへの依存を避けるべき
- 依存関係逆転の原則
- (DIP:Dependency Inversion Principle)
- 上位レベルの方針の実装コードは、下位レベルの詳細の実装コードに依存すべきではなく、逆に詳
細側が方針に依存すべきである
- 16. 第3章:コンポーネントの結合
抽象度の計測
- Nc: コンポーネント内のクラスの総数
- Na: コンポーネント内の抽象クラスとインターフェイスの総数
- A: 抽象度。A = Na ÷ Nc
- Aは0から1までの値をとる。この値が
0であれば、そのコンポーネント
に抽象クラスやインターフェイスが一切含まれないことを表す。この値
が1であれば、そのコンポーネントには抽象クラスやインターフェイスし
か含まれないことを表す。
- (I/安定度、A抽象度)の数値が入る
- 除外すべき範囲(苦痛ゾーン/無駄ゾーン)(図参照)
- つまり(0、1)か(1、0)にすべき
- 苦痛ゾーンにはデータベーススキーマや具象ユーティリティライブラリ
が該当する
- D(Distance): D = |A + I - 1| 0以上1以下の値となる。値が 0の場合は主
系列にある。値が 1の場合は主系列から最もかけ離れた状態。
- 17. 第Ⅳ部:まとめ
- コンポーネント
- コンポーネントとはデプロイ単位のことである
- 優秀なコンポーネントは常に個別にデプロイができる状態を保っている
- コンポーネントの凝縮性
- 再利用・リリース等価の原則( REP)
- 閉鎖性共通の原則( CCP)
- 全再利用の原則( CRP)
- コンポーネントの結合
- 非循環依存関係の原則( ADP)
- 安定依存の原則( SDP)
- 安定度・抽象度等価の原則( SAP)