领域驱动和O2O电商的养成记

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 领域驱动与O2O电商的养成记 猫眼娱乐 王洋
2. 今天 讨论什什么 ✦ 统⼀一语⾔言的养成 ✦ 分层框架的设计和实践 ✦ 限界上下⽂文的提取 ✦ 系统之间的组织⽅方式 ✦ 业务演进带来的⽭矛盾点 ✦ DDD实施的难点
3. ⾯面临的问题 ⼈人员变动 产品 沟通效率低 概念混乱 运营 ⾼高并发问题 代码臃肿 ⽤用户 业务专家? 关系复杂 需求变化快 可靠性问题 商家 缺乏共识 ⽼老老板 ⽀支撑功能被遗忘 突发性需求 商务 财务 客服
4. 统⼀一语⾔言的养成 运营 产品 1.收集 代⾦金金券、通兑券、选座券 美团券、卖品券、演出券 异业券、电影兑换券 2.分类 5.推⼴广 技术 交易易过程减钱 资⾦金金优惠-XX券 代⾦金金券、通兑券、 选座券、异业券 3.定义 代⾦金金券、通兑券、 选座券、异业券 4.归档 术语字典 消费兑换-XX码 消费过程兑换物品 美团消费码 卖品消费码 演出兑换码 电影兑换码 美团券、卖品券 演出券、电影兑换券 改名
5. 分层框架的养成 http请求 模型转换层 接⼊入(Provider) 任务(Task) 消息、定时任务 业务流程层 rpc请求 公共流程(Biz-share) 业务(Biz) 业务2 核⼼心服务层 知识 沉淀 领域服务(Service) 基础数据层 领域模型(Domain) 数据库(Dao) ⼯工具(Common) 扩展点,可随时拆分 接⼝口合集 接⼝口(Export) 接⼝口2
6. 寻找问题域的数据实体 程序=算法+数据,找到⾏行行为源头的数据实体 提交订单 查询商品 锁库存 商品列列表 库存 计算价格 保存数据 商品快照 商品 售价*份数 ⾮非独⽴立实体 促销 优惠券 限购 会员 订单 付款明细
7. 限界上下⽂文的提取 利利益相关⽅方的关注点统⼀一,供应链上下⽂文 运营 商家 商家 商务 合同 1 促销活动 产品 代⾦金金券 采购单 付款单 ⽤用途的等同性,资⾦金金优惠上下⽂文 结算单 1 会员 价格 1 限购 商品快照 订单 1 1 财务 礼品卡 资⾦金金流 财务 问题的内聚性,账务上下⽂文 付款明细 存在性关系,订单上下⽂文 ⽤用户
8. 域内的组织⽅方式 ⼀一、业务⾏行行为可收敛,变化主要围绕“数据” 组合规则 ⽣生产 发放 计算 展示 业务规则 单类型规则 数据⾃自封装 横向扩展 代⾦金金券 通抵券 异业券 限购 促销活动 礼品卡 会员 ⼆二、数据存储可收敛,变化主要围绕⾏行行为 资⾦金金事件 交易易 消费 资⾦金金流 退款 横向扩展 ⽤用户查询 ⽤用户视⻆角 财务 公司视⻆角 结算 商家视⻆角
9. 域内的组织⽅方式 三、数据、⾏行行为不不规则的变化 交易易 消费 流程组合控制器器 消费码 同步流程可扩展 计价 ⻛风控 锁库存 ⽀支付成功模板 ★ 更更新核⼼心主库 ★ 更更新美团数据 ★ 通知扣减资源 ★ 回调出券流程 …… 物流 消费流程 异步流程可扩展 下单模板 ★ 写核⼼心主库 ★ 推数据到美团 ★ 多维度索引 虚拟币 …… 接单 任务编排 写模型 拆单 ⽀支付 任务引擎 美团订单中⼼心 查模型 订单核⼼心 订单中⼼心 Mafka CQRS ES
10. 核⼼心数据的设计 《聚合根》 订单 orderId:long total:int status:int …… 《实体》 资⾦金金明细 orderId:long total:long promotion:long{ maoyan:long merchant:long } coupon:long …… 《实体》 订单明细 《实体》 商品快照 orderId:long productId:int quantity:int …… 值对象 Price 《实体》 订单详情 《实体》 订单列列表 orderId:long userId:long …… userId:long orderId:long …… 《实体》 商品信息 《实体》 ⽀支付信息 《实体》 消费码 分表维度 关联信息
11. 膨胀的⽭矛盾体 1、更更细的粒度,订单上下⽂文hold不不住 消费码1 out_Id:123 con_code:11111 status:已消费 订单 虚拟币 order_id:123 status:? …… out_Id:123 coin_num:100 con_num:50 资⾦金金明细 消费记录 消费码2 out_Id:123 con_code:22222 status:已退款 order_id:123 total:100 cost:50 refund:50 con_id:321 con_num:50 …… 2、资⾦金金明细不不只局限在交易易环节
12. 膨胀的⽭矛盾体 增加账务上下⽂文,为关联的上下⽂文定义独⽴立的流⽔水类型 消费码1 虚拟币 订单 out_Id:123 con_code:11111 status:已消费 order_id:123 status:? …… 消费流⽔水 消费码2 out_Id:123 con_code:22222 status:已退款 退款流⽔水 财务视⻆角 out_Id:123 coin_num:100 con_num:50 交易易流⽔水 资⾦金金流⽔水 type:交易易流⽔水 out_id:123 amunt:100 type:消费流⽔水 out_id:321 amount:50 …… 消费记录 消费流⽔水 con_id:321 con_num:50 …… 商家视⻆角
13. DDD实施的难点 ✦ DDD的收益如何评估 ✦ 问题⼦子域—研发梯队—组织架构 ✦ 快速迭代中的知识积累 ✦ 技术团队的业务sense ✦ 交付压⼒力力带来的技术债
14. Q&A

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.138.0. UTC+08:00, 2024-12-22 11:30
浙ICP备14020137号-1 $Map of visitor$