去哪儿网 DDD 落地实践

会议室:待定
出品人:郑吉敏

2021 年去哪儿网有针对性地做了一系列 DDD 相关的技术培训,公司内外部反馈... 展开 >

专题出品人:郑吉敏

去哪儿网技术总监

2019 年 8 月入职去哪儿网,机票目的地事业群技术总监、技术委员会委员,负责目的地业务研发报价中心团队、业务架构组,高星酒店、机酒交叉总技术负责人。2020 年去哪儿网金项奖评选中主导的“对内 DDD 对外 API 驱动的酒店报价业务重塑”项目获得“CEO 特别奖”。擅长架构设计、高并发高可用处理,公司内部“DDD 领域驱动设计”、“高并发解决方案”等技术系列课出品人及讲师,曾在 QCon 全球软件开发大会、Top100 全球软件案例研究峰会、SACC 中国系统架构师大会、CSDI 中国软件研发管理行业技术峰会等多个业界技术大会做过技术分享。

专题:去哪儿网 DDD 落地实践

2021 年去哪儿网有针对性地做了一系列 DDD 相关的技术培训,公司内外部反馈都不错,去哪儿网内部也有不少技术团队借助 DDD 思想去结合业务实际做了一些落地。本专题我们邀请到了去哪儿网的 5 位技术专家,分别从酒店订单交易、酒店基础数据、机票主站、服务平台业务、会员卡业务讲解具体的 DDD 落地案例,分享他们在这个过程中的一些实践经验和思考。

by 李佳奇

去哪儿网
机票目的地事业群 技术总监

2021 年去哪儿网进行了一系列 DDD 的落地,覆盖了丰富的业务场景,在涉及的系统模型上也各不相同,同时系统所属的生命周期阶段也各有差别。在不同的业务场景和系统模型上进行 DDD 落地的过程中,其入手点和关注点会有差异,需要处理的难点问题也不一样。同时对建模的方法,落地框架的选择和使用在系统不同的生命阶段也有不同的要求。本次分享我会将去哪儿网几次典型的 DDD 落地案例进行介绍,并针对过程中遇到的核心问题进行深入剖析,提炼出应对不同的场景以及不同的系统模型,在系统生命周期不同阶段进行 DDD 落地时的指导思想和方法。

演讲提纲:

1. 去哪儿网机票 DDD 落地案例介绍

  • 信用付 DDD 
  • 机票主站 DDD

2. C 场景和 Q 场景下 DDD 落地方法

  • 事件风暴 vs 场景风暴
  • 关注外部行为 vs 关注内部层次
  • 模型概念的变化

3. 独立型系统和聚合型系统 DDD 落地方法

  • 边界划分的差异
  • 善用网关层
  • 康威定律的作用
  • 依赖反转

4. 新业务和老业务 DDD 落地方法

  • 战略设计对于新业务的意义
  • 领域专家哪里找

5. 总结与展望

  • 一套完整的 DDD 落地框架
  • 领域模型的进一步精炼
  • 具备 DDD 思维模型的技术团队搭建

你将获得:

  • 全方位了解在多场景下覆盖丰富业务的 DDD 落地案例,学习去哪儿网 DDD 落地过程中的经验和教训
  • 掌握一套有效的 DDD 落地框架,并在具体的业务场景和系统模型中进行适当的调整

by 井显生

去哪儿网
服务平台 高级经理

机票退款业务从角色维度上划分可以拆分为用户侧退款、代理侧退款和供应侧退款三部分。代理侧承载了去哪儿网和机票代理商之间的业务,这部分业务复杂性随着演化不断增加,如果没有严格的维护和适应性调整使之适应业务的变化,软件的质量会逐渐衰减。在公司练内功,对内 DDD、对外 API 的大背景下,我们实施了基于 DDD 的重构。本次我主要分享退款战略设计和战术设计,退款领域层的微内核架构设计与实现,希望能给你带来启发。

演讲提纲:

1. 业务介绍

  • 机票业务介绍
  • 重构背景和目标

2. 战略设计落地过程

  • 识别领域名词、决策命令和领域事件
  • 如何识别限界上下文和依赖关系
  • 如何划分子域

3. 战术设计微内核架构设计与实现

4. 总结与思考

你将获得:

  • 服务 DDD 实战案例,战略设计落地过程
  • 战术设计落地过程
  • 领域层服务编排微内核架构设计实现

by 李全党

去哪儿网
酒店供应链 资深研发工程师

酒店基础数据涵盖酒店、房型、图片及酒店周边等业务,系统架构原为 Q 侧业务设计开发,但因战略要求,基础数据需要实现 CQ 一致性。在对系统融合改造时,由于并未严格执行系统设计研发,导致业务复杂度高及耦合严重,在公司“大主站+微服务”及“对内 DDD 对外 API ”的背景下,我们对基础数据业务系统进行 DDD 重构,以达到降低业务复杂度,实现数据准确性、及时性及可视化的目标。本次分享我主要以酒店基础数据背景及现状为入口,讲解 DDD 的核心思想、项目战略战术设计及落地编码实践,希望能给你带来启发。

演讲提纲:

1. 实践背景

  • 基础数据业务介绍
  • 基础数据背景及现状、愿景目标

2. 为什么选择 DDD

  • DDD 核心思想
  • 核心思想分项讲解,能解决业务什么问题

3. 战略战术设计

  • 领域建模工具及方法
  • 落地战略设计、战术设计

4. 落地编码实践

5. 思考和总结

  • 挑战
  • 成果

你将获得:

  • 了解 DDD 领域建模过程及核心思想
  • 通过 DDD 实际案例,落地战略战术设计
  • 根据项目实际执行情况,讲解领域模型转为代码模型设计原则

by 李鑫

去哪儿网
酒店交易 JAVA 开发高级经理

DDD 思想是如何应用指导订单交易的呢?本次分享我会将理论与实践结合,以实战案例为起点介绍 DDD 核心概念,如何设计战略战术方案和 DDD 报价模型、DDD 交易系统架构、领域模型、事件驱动设计以及一致性解决方案等相关知识,总结战略设计、战术设计、实施落地三个核心阶段。我会带领你回归面向对象的本质、重拾抽象思维的价值、专注业务复杂度分离、突破技术复杂性,希望能给你带来启发。

演讲提纲:

1. DDD 核心概念

2. 战略设计 & 战术设计

3. 订单交易 DDD 架构设计

4. 事件驱动设计

5. 一致性解决方案

6. 总结展望

你将获得:

  • 了解什么是 DDD
  • 了解领域驱动 DDD 设计原则
  • 掌握 DDD 落地实施关键环节

by 冯静哲

去哪儿网
公共产品研发 技术总监

去哪儿网的付费会员卡作为可以承载体验、增长、收益多种目标的产品形态,其业务架构的搭建质量决定了产品能力的支撑和扩展效率。因此会员产品和研发通力配合,在 2021 年初实施了基于 DDD 的系统重构。本次分享将聚焦于领域分析和落地过程中的关键概念解析和难点问题解决,希望可以为大家提供有价值的参考。

演讲提纲:

1. 会员卡业务

  • 会员卡业务介绍
  • 重构前面临的问题

2. 领域分析

  • 会员卡领域概述
  • 关系很重要

3. 落地过程

  • 分层简介
  • 领域层 or 应用层
  • 用户层 or 防腐层
  • 一个小工具

4. 总结与反思

  • 成果总结
  • 遗留问题

你将获得:

  • 中等规模业务系统的 DDD 实施全流程
  • 明晰领域建模中的关键概念
  • 落地过程中的设计权衡与考量
  • 对于计划实施 DDD 的同学,明确重点,克服难点,少走弯路,增强信心

交通指南

来广营·朝来科技园

Laiguangying Beijing
地址: 北京市朝阳区来广营朝来科技园
  • 微信咨询

  • 电话咨询

    联系电话:+86 13167596032

微信联系我们