CRUD in DDD

13-04-19 2012
看了这个贴 http://stackoverflow.com/questions/1883107/cqrs-and-crud-screens

Greg在后面说"I may not really care why a name is changing in my domain where I ship products to people and only need that data to print mailing labels. "

确实, DDD中一般没有Hard Delete, 还有一些操作对于Domain没有明确的含义, 这些操作明显不应该放在Domain中,也没必要统统封装成Command

如果这样就会有一些问题,

1, CRUD放在哪儿呢? 或者说在哪里调用Repo的CRUD操作, 在client, application or .... ?

2, Event Sourcing 还能实施么?

                   

4
banq
2013-04-19 13:17
我的观点:如果你的系统简单得只剩余CRUD,要么不用DDD,因为DDD适合复杂软件;当然我们可以认为CRUD也是一种业务,那也没有问题。

2012
2013-04-19 14:41
2013-04-19 13:17 "@banq

"的内容

我的观点:如果你的系统简单得只剩余CRUD,要么不用DDD,因为DDD适合复杂软件;当然我们可以认为CRUD也是一种业务,那也没有问题。 ...

这里的CRUD非指这四种操作, 更多是指那写琐碎的, 不能体现UL, 但是有必不可少的操作, 比如需要物理删除一条记录, 或修改一个输错的字段.

正是因为业务逻辑复杂, 才会有此疑惑, 那些看起来无关紧要的部分如果放入业务逻辑, 可能反而占据了大量精力.

brighthas
2013-04-21 09:06
我的做法是 Aggre对象的方法会发出事件,由event handle监听到后进行创建/更改/删除

2012
2013-04-21 21:41
2013-04-21 09:06 "@brighthas

"的内容

我的做法是 Aggre对象的方法会发出事件,由event handle监听到后进行创建/更改/删除 ...

event应该是" 已发生的事 ", 如果domain用event来让别人去做CRUD, 那岂不是成为command了?

猜你喜欢
4Go 1 2 3 4 下一页