课程内容:
- 采用工作坊的教学模式
- 共创主题一:DDD业务分析步骤
- 共创主题二:DDD领域模型输出
- 共创主题三:业务架构蓝图输出
收益:
- 如何采用DDD进行业务分解?【循序渐进不断实践】
- 共创输出项目业务架构图及业务分析
知识复习
事件风暴
事件风暴会议
在线订餐系统的事件风暴【样例】
问题域、子域与限界上下文【样例】
在线订餐系统的领域事件【样例】
微服务拆分【样例】
领域模型【样例】
领域分析与领域模型【样例】
原文分析法【样例】
分析结果【样例】
原文分析法【样例】
四色建模【样例】
限界上下文的设计原则
研发框架之分层结构 – 实体
代码案例摘自:
https://github.com/dayatang/dddlib
https://github.com/dayatang/hrm-demo
研发框架之分层结构 – 值对象
研发框架之分层结构 – 仓储
具体实现则由EntityRepositoryHibernate Implements EntityRepository
研发框架之分层结构 – 工厂
Spring的工厂实现
谷歌的guice的工厂实现
当并发量高了之后,修改只是技术层面的东西,业务领域是不会发生变化的。
研发框架之分层结构 – 领域事件
研发框架之分层结构 – 实体抽象与继承
研发框架之分层结构 – 业务实体
研发框架之分层结构 – 实例与值对象、属性、行为定义
熟悉了注解后,后续的组织形式就会比较清晰。
研发框架之分层结构 – 通用查询实现
CQRS
上节回顾
关键点需要聚焦
共创
-
共创主题一:DDD业务分析步骤
-
共创主题二:DDD领域模型输出
-
共创主题三:业务架构蓝图输出
-
确定业务架构设计主要内容
- 组织结构 业务功能 商业模式 业务流程 业务数据
-
采用DDD分解业务
- 事件风暴【产品愿景分析、场景分析、领域建模】
- 限界上下文【定义领域边界的利器】
- 领域&子域【有效分解问题域】
- 领域模型【实体和值对象】
共创主题 - DDD分解业务 - 业务架构设计
- 先定义事件风暴的一些组件
- 列出业务功能
- 个人思考:下单事件、履约事件、配送事件、退款事件…
- 课上讨论:
- 用户下单(事件)、下单(命令)、已下单(领域事件)、订单+菜品明细(对象,聚合关系)
- 通过三个视角梳理业务:商家体系管理【商品管理、商家入驻…】、用户体系管理【】、平台体系管理【】
- 商家:商家注册-》商家审核-》…