DDDのCommand
Commandパターンとは関係ないmrsekut.icon
e.g. 顧客が注文書を受け取るとことを望んだ
Commandは常に成功するわけではない
命令形で書かれる
table:例
↓Command ↓Domain Event
Make X happen X happened
Place an order Order placed
Commandによって、対応するDomain Eventが生じる
Commandは、あるworkflowがリクエストを処理するために必要な全てのものを含む
e.g. コマンドの作成者、タイムスタンプなど
project内のCommandは共通するフィールドを持つこともある
genericsを使った型を用意すると良い
code:ts
type Command<Data> = {
data: Data;
timestamp: Date;
userId: UserId;
...
}
本当にこんな汎用型を用意して上手くいくのか?とちょっと思っているmrsekut.icon
userIdとか常に必要になるとは限らなくない?
完全なグローバルではなく、「Orderの文脈」での共通の型を用意する感じ?
参考
解説、具体例など、図解もある