CQRS作为DDD的最佳实践已经得到广泛承认和普及,下面摘取该文章的PPT部分图片简单讲解一下,如何使用CQRS和Event Sourcing实现DDD系统。
首先,领域专家对需求进行定义:
1.举办一个比赛,有两个队参加
2.比赛在某个时间开始,只能开始一次。
3.比赛结束后,统计积分
作为用户,希望看到:
1.参加比赛的队伍名称
2.比赛开始时间
3.比赛结束时间
4.比赛结束后的分数。
好了,搜集到这些需求以后,我们下一步该怎么办呢?
1.如何确定建模的第一步?
2.它是如何和关系数据库有关?
3.建模时如何考虑到用户的操作?获得他们想要看到的数据?
4.当建模时你更关心什么?
传统方式从上面需求中,根据名词或动词法则,得到下面类:
Match比赛
Team队伍
Score分数
MatchService
类的代码如下图所示,并且有Hibernate等ORM的元注解:
![](/user/files/KhDTKaC3ObXATHHwzItkBemoXZ-NZSMFIFUmEftXs6E.png)
![](/user/files/cdSAkQO6zPyI_Jlb_SpK6G9rgTYKMBDvyj89IOkJvvw.png)
,CQRS作为DDD的最佳实践已经得到广泛承认和普及,下面摘取该文章的PPT部分图片简单讲解一下,如何使用CQRS和Event Sourcing实现DDD系统。