设计过程中我们可以用一些表格,来记录事件风暴和微服务设计过程中产生的领域对象及其属性。比如,领域对象在 DDD 分层架构中的位置、属性、依赖关系以及与代码模型对象的映射关系等。
下面是一个微服务设计实例的部分数据,表格中的这些名词术语就是项目团队在事件风暴过程中达成一致、可用于团队内部交流的通用语言。在这个表格里面我们可以看到,DDD 分析过程中所有的领域对象以及它们的属性都被记录下来了,除了 DDD 的领域对象,我们还记录了在微服务设计过程中领域对象所对应的代码对象,并将它们一一映射。
| 层 | 聚合 | 领域对象 | 领域类型 | 依赖对象 | 包名 | 类名 | 方法名 |
|
应 用 层 |
/ |
创建请假信息应用 服务 |
应用服务 | 创建请假信息领域服务 | *.leave.application.service | CreateLeaveInfoAppService | CreateLeaveInfoAppService |
| / | 请假审批已通过 | 事件发布 | 请假审批 | *.leave.application.event.publish | SendApprovalEventInfo | SendApprovalEventInfo | |
|
领 域 层 |
请假 | 请假单 | 聚合根 | *.leave.domain.leave.entity | Leave | ||
| 创建请假信息 | 命令 | *.leave.domain.leave.entity | Leave | CreateLeaveInfo | |||
| 审批轨迹 | 值对象 | *.leave.domain.leave.entity | ApprovalTrace | ||||
| 创建审批轨迹信息 | 命令 | *.leave.domain.leave.entity | ApprovalTrace | CreateApprovalTrace | |||
| 创建请假信息 | 领域服务 | 创建请假信息 | *.leave.domain.leave.service | CreateLeaveInfoDomService | CreateLeaveInfoDomService | ||
| 创建审批轨迹信息 | 领域服务 | 创建审批轨迹信息 | *.leave.domain.leave.service | CreateApprovalTraceDomService | CreateApprovalTraceDomService | ||
| 人员 | 人员 | 聚合根 | *.leave.domain.person.entity | Person | |||
| 创建人员信息 | 命令 | *.leave.domain.person.entity | Person | CreatePersonInfo | |||
| 组织关系 | 值对象 | *.leave.domain.person.entity | PersonRelationship | ||||
| 创建组织关系 | 命令 | *.leave.domain.person.entity | PersonRelationship | CreatePersonRelationship | |||
| 创建人员信息 | 领域服务 | 创建人员关系 | *.leave.domain.person.service | CreatePersonInfoDomService | CreatePersonInfoDomService | ||
| 创建组织关系 | 领域服务 | 创建组织关系 | *.leave.domain.person.service | CreatePersonRelationshipDomService | CreatePersonRelationshipDomService | ||
|
基 础 层 |
请假 | 请假仓储接口 | 仓储接口 | *.domain.leave.repository.facade | LeaveRepositoryInterface | LeaveRepositoryInterface | |
| 请假仓储实现 | 仓储实现 | *.domain.leave.repository.persistence | LeaveRepositoryImpl | LeaveRepositoryImpl | |||
| 人员 | 人员仓储接口 | 仓储接口 | *.domain.person.repository.facade | PersonRepositoryInterface | PersonRepositoryInterface | ||
| 人员仓储实现 | 仓储实现 | *.domain.person.repository.persistence | PersonRepositoryImpl | PersonRepositoryImpl |
浙公网安备 33010602011771号