見出し画像

非循環依存関係の原則(ADR)を開発に活かす


はじめに

今回は非循環依存関係の原則の解説をします。

SOLID のような原則系ですが、SOLID とは違いコンポーネントレベルの原則です。SOLID はクラス単位に適用される、もう少し狭い範囲の原則です。

非循環依存関係の原則とは

コンポーネントの依存グラフに循環依存があってはいけないという原則です。

循環依存があるとどんな悪いことが起きるでしょうか。

  • あるコンポーネントを修正する際の影響範囲が広がる

  • コンポーネントをデプロイする順番が不明確になる

1つ目の影響範囲について解説します。

A→B→C→A と循環依存しているコンポーネント群があるとします。

この場合、A に依存するコンポーネントは B や C が変更されたときの影響範囲に含まれてしまいます。
さらに、B に依存するコンポーネントは A や C が変更されたときの影響範囲に含まれてしまいます。
C に依存するコンポーネントについても同様です。

2つ目のデプロイ順序について解説します。

A→B→C と循環依存していないコンポーネント群があるとします。

このとき、A, B, C の全てを修正したくて、かつ一つずつデプロイしたい場合、デプロイの順番を決めることは難しくありません。

一方で、A→B→C→A と循環依存しているコンポーネント群の場合、デプロイの順番を論理的に決めることは不可能です。

非循環依存関係の原則をどう使うか

では、循環依存がないようにするにはどうすればいいでしょうか。

解決策は、依存性逆転の原則(DIP)を使って依存方向を自由にコントロールすることです。

これだけで循環依存を防止できるので、ぜひ活用しましょう。

まとめ

  • 非循環依存関係の原則とは、コンポーネントの依存グラフに循環依存があってはいけないという原則

  • 循環依存を避けるために、依存性逆転の原則(DIP)を使って依存方向を自由にコントロールしましょう

この記事が気に入ったらサポートをしてみませんか?