DDD CQRS和Event Sourcing的案例:足球比赛

Posted tuhooo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DDD CQRS和Event Sourcing的案例:足球比赛相关的知识,希望对你有一定的参考价值。

在12月11日新的有关DDD CQRS和Event Sourcing演讲:改变心态- 以更加面向对象视角看待业务领域建模中,作者以足球比赛football Match为案例说明传统编程方法和CQRS的区别。

CQRS作为DDD的最佳实践已经得到广泛承认和普及,下面摘取该文章的PPT部分图片简单讲解一下,如何使用CQRS和Event Sourcing实现DDD系统。

 

首先,领域专家对需求进行定义:

1. 举办一个比赛,有两个队参加

2. 比赛在某个时间开始,只能开始一次。

3. 比赛结束后,统计积分

作为用户,希望看到:

1. 参加比赛的队伍名称

2. 比赛开始时间

3. 比赛结束时间

4. 比赛结束后的分数。

好了,搜集到这些需求以后,我们下一步该怎么办呢?

1. 如何确定建模的第一步?

2. 它是如何和关系数据库有关?

3. 建模时如何考虑到用户的操作?获得他们想要看到的数据?

4. 当建模时你更关心什么?

传统方式从上面需求中,根据名词或动词法则,得到下面类:

Match比赛

Team队伍

Score分数

MatchService

类的代码如下图所示,并且有Hibernate等ORM的元注解:

待续.

以上是关于DDD CQRS和Event Sourcing的案例:足球比赛的主要内容,如果未能解决你的问题,请参考以下文章

聊聊event-sourcing-cqrs的model

CQRS, Task Based UIs, Event Sourcing agh!

领域驱动设计的实践 – CQRS & Event Sourcing

深入浅出Event Sourcing和CQRS(转)

深入浅出Event Sourcing和CQRS

微服务数据一致性的演进:SAGA,CQRS,Event Sourcing的由来和局限