 领域驱动设计&中台/如何让DDD落地户故事转变成领 域故事,最后领域故事⼜又如何变成为代码。 02 从需求到代码 京⻄西商城的需求 ‣ 产品运营⼈人员可以添加新的商品,编辑产品库存,并发布到京⻄西商城,⽤用户 可以进⾏行行购买; ‣ 京⻄西商城的买家可以查看产品可购买的库存数量量,并⽣生成购买订单,买家可 以撤单,查看订单的状态,对订单进⾏行行⽀支付(⽀支付宝)。⽀支付成功后,仓储 管理理员会收到出库请求,进⾏行行配货并发货。同时,买家可以查看物流状态以 及确认收货。 事件⻛风暴暴的结果 事件⻛风暴暴得到的命令和事件就没⽤用了了吗? 订单 已创建 库存 已锁定 提交 订单 ⽤用户 SubmitOrderCommand OrderCreated StockLocked 订单聚合创建订单服务 接收 仓库聚合的事件订阅者 仓库聚合锁定库存服务 发送 LockStockCommand ⽣生成 ⽣生成 接收 ⽣生成 QueryOrderCommand Given:导航【购物⻋车】 - When:确定购物⻋车中要提交的商品和数量量,然后点击提交; - Then:订单成功提交,从商品库存中锁定订单的数量量,提示⽓气泡“商品已保存成功” - And when:如果订单的数量量超过商品库存中可以锁定的数量量 - Then:订单⽆无法成功提交,提示⽓气泡“库存数量量不不够,仅剩X件” ⽤用户故事到领域故事 点击提交按钮后 1.订单API控制器器会收到创建订单请求,0 码力 | 32 页 | 3.25 MB | 1 年前3 领域驱动设计&中台/如何让DDD落地户故事转变成领 域故事,最后领域故事⼜又如何变成为代码。 02 从需求到代码 京⻄西商城的需求 ‣ 产品运营⼈人员可以添加新的商品,编辑产品库存,并发布到京⻄西商城,⽤用户 可以进⾏行行购买; ‣ 京⻄西商城的买家可以查看产品可购买的库存数量量,并⽣生成购买订单,买家可 以撤单,查看订单的状态,对订单进⾏行行⽀支付(⽀支付宝)。⽀支付成功后,仓储 管理理员会收到出库请求,进⾏行行配货并发货。同时,买家可以查看物流状态以 及确认收货。 事件⻛风暴暴的结果 事件⻛风暴暴得到的命令和事件就没⽤用了了吗? 订单 已创建 库存 已锁定 提交 订单 ⽤用户 SubmitOrderCommand OrderCreated StockLocked 订单聚合创建订单服务 接收 仓库聚合的事件订阅者 仓库聚合锁定库存服务 发送 LockStockCommand ⽣生成 ⽣生成 接收 ⽣生成 QueryOrderCommand Given:导航【购物⻋车】 - When:确定购物⻋车中要提交的商品和数量量,然后点击提交; - Then:订单成功提交,从商品库存中锁定订单的数量量,提示⽓气泡“商品已保存成功” - And when:如果订单的数量量超过商品库存中可以锁定的数量量 - Then:订单⽆无法成功提交,提示⽓气泡“库存数量量不不够,仅剩X件” ⽤用户故事到领域故事 点击提交按钮后 1.订单API控制器器会收到创建订单请求,0 码力 | 32 页 | 3.25 MB | 1 年前3
 领域驱动设计&中台/可视化的遗留系统微服务改造软件系统需要关注业务过程中发⽣生的业务数 据的变化。 事件⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已编辑 商品 已发布 商品销售 价格已编辑 订单 已发货 补货申请 单已创建 补货申请 补货申请 单已审批 ⼊入库单 已创建 ⼊入库单 已⼊入库 订单 已签收 订单已 确认收货 仓库库存 已扣减 仓库库存 已增加 商品已 编辑 退货单已 创建 退货单已 审核 订单已 退货 ⼊入库单 已创建 ⼊入库单 已⼊入库 仓库库存 已增加 寻找命令 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 什什么是命令? 为什什么⽤用命令? 如何进⾏行行命令⻛风暴暴? (⻩黄⾊色即时贴)并进⾏行行表示; 划分限界上下⽂文 命令⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已编辑 商品 已发布 商品销售 价格已编辑 订单 已发货 补货申请 单已创建 补货申请0 码力 | 54 页 | 3.85 MB | 1 年前3 领域驱动设计&中台/可视化的遗留系统微服务改造软件系统需要关注业务过程中发⽣生的业务数 据的变化。 事件⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已编辑 商品 已发布 商品销售 价格已编辑 订单 已发货 补货申请 单已创建 补货申请 补货申请 单已审批 ⼊入库单 已创建 ⼊入库单 已⼊入库 订单 已签收 订单已 确认收货 仓库库存 已扣减 仓库库存 已增加 商品已 编辑 退货单已 创建 退货单已 审核 订单已 退货 ⼊入库单 已创建 ⼊入库单 已⼊入库 仓库库存 已增加 寻找命令 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 什什么是命令? 为什什么⽤用命令? 如何进⾏行行命令⻛风暴暴? (⻩黄⾊色即时贴)并进⾏行行表示; 划分限界上下⽂文 命令⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已编辑 商品 已发布 商品销售 价格已编辑 订单 已发货 补货申请 单已创建 补货申请0 码力 | 54 页 | 3.85 MB | 1 年前3
 QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+丢失更新等) 业务纵向拆分,化整为零 资源拆分,横向扩展 cache,index,partition parallel non-blocking sync、lock,cas 额度、库存、积分、优惠券… CAP 数据竞争� [sql方案示例] 乐观锁,带来重试代价 悲观锁,开销大,吞吐量差 数据库锁(全局标识拦截): update0 码力 | 42 页 | 19.96 MB | 1 年前3 QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+丢失更新等) 业务纵向拆分,化整为零 资源拆分,横向扩展 cache,index,partition parallel non-blocking sync、lock,cas 额度、库存、积分、优惠券… CAP 数据竞争� [sql方案示例] 乐观锁,带来重试代价 悲观锁,开销大,吞吐量差 数据库锁(全局标识拦截): update0 码力 | 42 页 | 19.96 MB | 1 年前3
共 3 条
- 1













