mizoguche.info

モジュール - エリック・エヴァンスのDDD読んだメモ

モジュールによって下記が実現できる。

  • 全体に圧倒されることなく、モジュール内部の詳細を見ることができる
  • 内部の詳細を無視した上で、モジュール間の関係性を見ることができる

TL; DR

  • モジュールによって思考の単位を調整する
  • モジュールのリファクタリングはしんどいけど歯を食いしばってやること
  • フレームワークの規約によってオブジェクトがモジュール間で分断されないようにすること

モジュール

  • モジュール間では低結合、モジュール内では高凝集が必要
  • モジュールはコードだけではなく概念も分割する
    • 人が考えられる物事の数には限りがある
    • 首尾一貫していない思考の断片は理解するのが難しい
  • モジュールはコミュニケーションの仕組み
    • 分割されるオブジェクトの意味がモジュールの選択を駆動させなければならない
    • クラスを1つのモジュールに入れることは、それらのクラスをひとまとめに考えろという、その設計を見る開発者に対するメッセージである
  • モジュールにはユビキタス言語の一部になる名前をつけること
    • モジュールとその名前はドメインに対する考察を反映していなければならない

アジャイルモジュール

  • モジュールへの変更は広範囲に影響するためあまり行われず、モデルの初期のかたちを反映することが多い
  • リファクタリングを行わなければ惰性に流されるばかりなので、歯を食いしばってモジュールの再構成を行うこと

インフラストラクチャ駆動パッケージングの落とし穴

  • フレームワークの持つ分割の規約によって、概念的なオブジェクトを実装する要素がばらばらにわけられてしまうとしたら、もはやコードがモデルを明らかにすることはなくなる
  • 単一の概念オブジェクトを実装するコードはすべて、同一のオブジェクトにならなくても、同一のモジュールにまとめること
  • ドメイン層を他のコードから分離するためにパッケージングを使用すること
このエントリーをはてなブックマークに追加