モジュール化
システムを独立した部品(モジュール)に分割し、各モジュールが明確な責務を持つようにする設計原則。
目的
- 認知負荷の削減: 保持負荷を下げる。全体を一度に理解する必要がない
- 変更の局所化: 影響範囲を限定できる
- 再利用性の向上: 独立したモジュールは他のシステムでも使える
- テスト容易性: 個別にテスト可能
設計原則
- 高凝集: モジュール内部の関連性が高い
- 疎結合: モジュール間の依存を最小化
- 単一責任: 1つのモジュールは1つの責務のみ
アーキテクチャとの関係
Domain-Driven DesignのBounded Contextやアーキテクチャのレイヤー分割は、モジュール化の具体的な適用例。
認知的距離との関係
モジュール境界は認知的距離が大きい箇所を明示的に管理する設計。高凝集 = 内部の認知的距離が較正ループで管理可能。疎結合 = 外部インターフェースがスキーマ非依存の共有プロトコルで定義されている状態。
関連
- 認知的距離 - 凝集度/結合度の原理的説明
- 認知負荷
- アーキテクチャ
- Domain-Driven Design
- コードベース