ドメイン駆動開発_フォルダー構成編_#56_Module

当サイトではアフィリエイト広告を利用しています。

NDDD

今回はModule(モジュール)フォルダーのお話をします。

モジュールには「どこにも納まらないもの」を入れます。基本的にはValueObjectやEntity,Repositoryに振り分けていくのですが,アプリケーションを作成していると,どうにもおさまりの悪いものが出てきます。Logicsに入れるようなstaticな関数でない場合もあります。最終的に,どこにも入れられなかった場合はModuleフォルダーに入れるようにします。

Modulesフォルダーの作成

ドメインプロジェクトにModulesフォルダーを作成します。この中に,処理のひと固まりで,納まりの悪いクラスを入れます。例えば,「在庫」「発注」などという単位で,クラスを集めておいたほうがいい場合などは,このModulesフォルダーの中に「在庫」「発注」「プロモーション」などとフォルダーを作って入れてもいいです。

ただあまりここに安易に入れないほうがいいです。できるだけValueObjectやEntityにロジックは入れるようにしましょう。あとドメインプロジェクトの直下に「在庫」「発注」などのフォルダーを作ると,フォルダー構成の見通しが悪くなるので,Modulesフォルダーに入れるようにします。

LogicsやHelpersフォルダーもModulesフォルダーに入れたほうが,見通しが良くなるので,そのようにするのもいいです。