前回の記事
【ミライトデザイン社内勉強会#17】「IDDD本から理解するドメイン駆動設計」輪読会~第8章「ドメインイベント」~ - Qiita
実践DDD本 第9章「モジュール」~高凝集で疎結合にまとめる~
パッケージ構成を考える時に毎回迷ってしまうので、DDDに限らず、パッケージを分けるときに基準にしていることがあれば知りたい
- 言語やフレームワークによってはある程度パッケージ構成が決まっている
- マイクロサービスにするかとかアプリケーションの規模でも変わってくる
- プロジェクトや規模感、人によって違いがあるので明確な基準はないと思う
- ディレクトリの話とパッケージの話は一緒なことが多いけど、厳密には違う
- 言語によってはパッケージとディレクトリが同じではないこともある
アーキテクチャごと、に適したパッケージの分け方とかあるの?例えば、ヘキサゴナルアーキテクチャの時はこんな感じにした方が良いとか
- アーキテクチャとディレクトリの構成はほとんど関係ない
- 一番最初に悩むのがパッケージ構成
- エディタのおかげでパッケージ構成を変更するのは比較的楽になっているので、見にくくなってきたらパッケージ構成を見直したりもする
一般的なモジュールは機能単位のイメージがあるけど、DDDにおいてはクラス群をまとめるものとしているがパッケージみたいのもの?
- 一般的にモジュールはモジュール単位で実行できるものとしているが、DDDにおいては独立しているとかは関係なく、意味ある単位で分割するものとしている(パッケージと同じ感じ)
- モジュールを分ける基準としては、モジュールの中で簡潔する
- ドメインオブジェクトの場合は参照の単位で分けている
ディレクトリ、パッケージ、モジュール、ライブラリ、プラグイン各単語の違い
- 違いが分からない?ライブラリー、プラグイン、モジュール について
-
ディレクトリ
- ただのディレクトリ
-
パッケージ
- モジュール、ライブラリ、プラグインとは別の話
- パッケージ | IT用語辞典 | 大塚商会
- ex. ディレクトリをパッケージ化する
- ex. パッケージ化してモジュールにする
-
モジュール
- モジュール (module)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- 少なくともモジュール単位で実行できる
- プラグインよりは独立性がある
-
ライブラリ
- ライブラリ (library)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- 完成しているもの
- 参照するためのレシピ
-
プラグイン
- プラグイン (plug-in)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- ある機能の拡張
- プラグインを使用して1つの機能を作るイメージ
- 何か親があって動くようなイメージ
- エディタであれば、プラグイン単体では使用できない
次回
【ミライトデザイン社内勉強会#19】「IDDD本から理解するドメイン駆動設計」輪読会~第10章「集約」~ - Qiita