CQRS之旅——旅程3(订单和注册限界上下文) (2)

与会者:与会者是有权参加会议的人。与会者可以与系统交互,比如管理议程、打印徽标以及会后提供反馈。与会者也可以是不花钱参加会议的人,比如志愿者、演讲者或享受100%折扣的人。一位与会者可以有多种相关的与会者类型(如演讲者、学生、志愿者、track chair等等)。

注册者:注册者是与系统交互下订单并为这些订单付款的人。注册者还创建与订单关联的注册。注册者也可以是与会者。

用户:用户是与会议相关的参会者、注册者、演讲者或志愿者。每个用户都有一个惟一的记录定位器代码,用户可以使用该代码访问系统中特定于用户的信息。例如,注册者可以使用记录定位器代码访问她的订单,与会者可以使用记录定位器代码访问他的个性化会议议程。

CQRS之旅——旅程3(订单和注册限界上下文)

Carlos(领域专家)发言:

我们刻意实现了一个记录定位器机制,以通过该机制返回以前提交的订单数据。这消除了用户必须注册,登录系统才能获得访问权限的烦人要求。我们的客户坚定要求这样。

座位分配:座位分配将与会者和按确定顺序排列的座位相关联。一个订单可能有一个或多个与其相关的座位分配。

订单:当一位注册者与系统交互时,系统创建一个订单来管理预订、付款和注册。当注册者已成功支付订单项下的款项时,订单将被确认。订单包含一个或多个订单项。

订单项:订单项包含座位类型和数量,并与订单关联。订单项有三种状态:创建、保留或拒绝。订单项最初处于创建状态。如果系统保留了登记人要求的座位类型的座位数量,则订单项处于保留状态。如果系统无法保留登记人要求的座位类型的座位数量,则订单项处于拒绝状态。

座位:一个座位代表着被允许参加一个会议或进入一个特定会议的权利,如鸡尾酒会、教学或研讨会。业务客户可以更改每次会议的座位配额。业务客户还可以更改每个小型会议的座位配额。

预订:预订是一个或多个座位的临时预订。订单程序将创建预订。当注册者开始订购时,系统会根据注册者要求的座位数量进行预订。因此,其他注册者无法预订这些座位。预订将保留n分钟,在此期间,注册者可以通过支付这些座位的费用来完成订购过程。如果注册者在n分钟内没有付款,系统将取消预订,其他登记人可以预订座位。

座位可用性:每个会议都将追踪每种类型座位的可用性。最初,所有的座位都可以预订和购买。当一个座位被预订时,该类型的可用座位数量将减少。如果系统取消预订,则增加该类型的可用座位数量。业务客户可以定义每种可用座位类型的初始数量,这是会议的一个特点。会议所有者可以根据不同的座位类型调整数量。

会议网站:您可以使用唯一的URL访问系统中定义的每个会议。注册者可以从这个网站开始订购过程。

这里定义的每个术语都是通过开发团队和领域专家之间的积极讨论制定的。下面是开发人员和领域专家之间的一个示例对话,演示了团队如何定义术语。

开发人员1:这里是对与会者定义的初步尝试。与会者是指花钱参加会议的人。与会者可以与系统交互,比如管理议程、打印徽标以及会后提供反馈。” 领域专家1:并不是所有与会者都会付费参加会议。例如,一些会议会有志愿者,而且演讲者通常不付钱。而且,在某些情况下,出席者可以获得100%的折扣。 领域专家1:别忘了付费的不是与会者。这是由注册者完成的。 开发者1:所以我们需要说与会者是被授权参加会议的人? 开发人员2:我们需要注意这里的用词。授权这个术语会让一些人想到安全性、身份验证和授权。 开发人员1:如何命名? 领域专家1:当系统执行诸如打印徽标之类的任务时,它需要知道徽标是用于哪种类型的与会者。例如,演讲者、志愿者、付费参与者等等。 开发人员1:现在我们有了这个定义,它捕获了我们讨论过的所有内容。与会者是有权参加会议的人。与会者可以与系统交互,比如管理议程、打印徽标以及会后提供反馈。与会者也可以是不花钱参加会议的人,比如志愿者、演讲者或享受100%折扣的人。与会者可以有多种相关的与会者类型(演讲者、学生、志愿者、track chair等等)。 创建订单的需求

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfsgw.html