りゅうじの学習blog

学習したことをアウトプットしていきます。

5/23 ドメイン駆動設計Chapter7-1

柔軟性をもたらす依存関係のコントロール

ソフトウェアに柔軟性をもたらすのに必要なこと=依存関係を制御すること

  • プログラムには依存という概念がある
  • 依存とは、オブジェクトがオブジェクトを参照するだけで発生する
    • オブジェクト同士に依存関係が発生するのは自然なこと
      • これを軽視すると柔軟性を失う
  • 特定の技術要素への依存を避けることが重要
    • 変更の主導権を主たる抽象に移すこと

7-1 技術要素への依存がもたらすもの

  • 積み上がった積み木をイメージして、中の方にあるブロックを抜き出すのを想像してみる
    • 適当に引き抜くと積み木は崩れてしまうので、上手に引き抜くのは難しいと感じる
      • プログラムの依存も同じである
        • ソフトウェアの中核に位置するオブジェクトを変更するのをイメージする
          • そのオブジェクトは多くのオブジェクトに依存されていて多くのオブジェクトに依存もしている
            • たった一つのオブジェクトを変更することで多くのオブジェクトに影響してしまう
  • 依存はプログラムを組み上げていく過程で避けられない
    • 重要なのは、依存は避けるのでなく、コントロールすること

参考

ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本