little-hands / ddd-q-and-a

DDD質問箱 回答記録
440 stars 1 forks source link

ツイッターフォローさせていただいてます。DDDで設計をした場合、beansやDTOは不要になるという事は理解しています。しかし、弊社で使用しているフレームワークではDTOの使用を前提としたものになっているのですが、DDDで設計をする上で上手... #8

Open little-hands opened 4 years ago

little-hands commented 4 years ago

Question

ツイッターフォローさせていただいてます。DDDで設計をした場合、beansやDTOは不要になるという事は理解しています。しかし、弊社で使用しているフレームワークではDTOの使用を前提としたものになっているのですが、DDDで設計をする上で上手なDTOとの付き合い方はないものなのでしょうか?

Answer

BeansやDTOというのは何を表すでしょうか?DDDの、クリーンアーキテクチャをはじめとしたレイヤーを持つアーキテクチャでは、(略)

98lerr commented 2 years ago

こちら、Twitter で書いていただいているご回答を転記します。 https://twitter.com/little_hand_s/status/1157588756964057089?s=21

BeansやDTOというのは何を表すでしょうか?DDDの、クリーンアーキテクチャをはじめとしたレイヤーを持つアーキテクチャでは、レイヤー間の値の受け渡しにオブジェクトを使うことがあります。(例えば、Controllerから複数の値をUseCaseクラスのメソッドに渡すなど) このオブジェクトはロジックを含まず、値を受け渡すだけの責務のオブジェクトなので、DataTransferObject、つまりDTOと呼んでも差し支えありません。

名前はなんでもいいので、ParameterオブジェクトでもRequestオブジェクトでも良いです。 問題は責務がきちんと明確になり、乱用されなければ良いのです。そのようにDTOが使われるのであれば、特に問題はありません。