©️ Photo by Marten Bjork on Unsplash
-文 | 任朝阳
刚刚过去的五一假期旅游业迎来了爆发,根据文化和旅游部公布的2021年“五一”假期旅游市场数据,5月1日至5日,国内旅游出游2.3亿人次,同比增长119.7%,按可比口径恢复至疫前同期的103.2%。这一切都得来不易。实际上,疫情以来,旅游业受到了很大的冲击,去哪儿网等相关旅游在线平台也不得不做出调整。据悉,受疫情影响,去哪儿网在组织架构和业务方向做了很大调整,整个产研整体效率的提升变得格外重要。公司内部提出了“练内功”、“对内DDD对外API”等口号让大家改进系统架构、提升效率。“酒店报价计算经过多年的迭代,业务流程复杂,开发人员维护代价很大,导致新需求接入时工时也较长、评估影响范围也需要一些时间梳理代码完成,新人需要学习很久才能上手。”SACC2021大会演讲嘉宾 去哪儿网技术总监 郑吉敏
去哪儿网技术总监郑吉敏提到的问题是行业通病,解决方法有很多,他选择基于DDD思想对酒店报价引擎进行重构,产研效率有了明显的提升,也因此获得了公司的CEO特别奖、技术贡献奖。
DDD是Domain-Driven Design的缩写,翻译成中文是领域驱动设计。软件开发不是一蹴而就的事情,在开发前通常需要进行大量业务知识梳理,然后到达软件设计层面,后进行开发。在业务知识梳理过程中会形成某个领域知识,以领域知识逐步驱动软件设计,便是领域驱动设计的基本理念。郑吉敏认为,DDD 是一种处理高度复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题。因此DDD应该是以业务重塑为主以系统重构为辅,在团队内对业务的运营方式、系统分工及边界建立共识和原则,同时兼顾业务未来发展的扩展性的系统工程。现在业务复杂度越来越高,市场变化越来越快,需要各方更紧密联动才能更好解决问题响应市场变化。2019年8月郑吉敏加入去哪儿网国内酒店报价中心团队,主要负责报价相关系统架构优化,他所负责的酒店报价引擎DDD重构已经成功落地。“让产品和技术坐在一起,讨论业务玩法并达成共识,借助‘域’的概念,搭建新的模型完成对业务进行重塑,既能满足已有核心业务,又能为未来业务发展做好规划。在过程中,划清业务界限和定位,之后共同作为领域专家守住领域。”郑吉敏接受IT168采访时指出了基于DDD思想重构的原因,他很早就开始学习DDD,在实践过程中完全认可了DDD的价值。郑吉敏强调,去哪儿网遇到的问题在行业内很普遍,解决类似问题有很多方法,但很难像DDD效果这么明显。DDD很像一种提升产研效率的方法,主要体现在作用上:
产品和技术坐在一起去梳理已有业务及痛点、讨论业务玩法及未来规划。和以往的需求及流程不一致,常规的产品需求主要从业务收益、用户体验等出发,常规的技术需求主要以技术优化及解决某些问题为目的,这个特殊的需求可以兼顾两者的利益和未来规划。
通过“领域”概念,帮助产品划清“地盘”,明确业务边界和职责,减少沟通上歧义,也让产品团队了解技术团队的实现,做到业务诉求和代码实现的统一。
帮助技术改进架构,给技术一个重新设计架构及重写的机会,混沌的流程重构后变得清晰,大大加强技术团队对核心业务实现细节的掌控力度。
完成业务重塑的同时,解决技术痛点、升级系统架构,提升整体合作效率,实现产品和技术的双赢。
郑吉敏之前了解到一些比较不错的技术架构设计原则,主要涉及战略和战shu两个层面。战略层面主要提供技术架构的方法和思路,主要原则为简单优于复杂、合适优于业界领先、演化优于一步到位;战shu层面主要提供的是技术架构的技术实践方式,主要是高并发原则与高可用原则。去哪儿网的酒店报价引擎重构是按照DDD推荐的战略设计,战shu设计、系统实现三个阶段来推进。整个过程持续了3个月,相比原计划提前1天全量完成项目目标。经过这次重构,很多杂乱流程变成标准化流程,所有标准化后的流程都可以更容易通过数字进行衡量,重构后降本增效明显,具体表现为:
重构前做接入时,报价团队平均在5pd左右,重构后对于相同玩法不再需要开发,新玩法升级模型多需要2pd。
重构前新人学习成本在2个月左右,重构后2周基本可以上手,单人学习成本可节省约30pd。
重构前值班每天要排查很多报价不展示问题,重构后这里做成可视化,运营及产品可以直接获得原因,值班每周可节省3pd。
产品与开发沟通成本降低明显,每周沟通成本至少可节省0.5pd。
郑吉敏认为DDD落地成功关键是战略设计阶段产研经过讨论达成的共识,基于共识做好战shu设计,并进行系统实现。一次DDD落地实践通常需要很长一段时间,需要特别注意在各个阶段都要不断深化共识,让大家认可项目的目标和落地后的效果,关注每个参与人员的状态,保证整体的输出效率。“酒店报价引擎重构后在提效方面效果明显,但单独一个组提效是不够的。”郑吉敏强调,接下来去哪儿网准备针对酒店整体技术架构,按照DDD思想去进行调整,区分出主站团队(适配业务变化)、核心领域团队(提供稳定的基础能力)。希望能借助这种技术架构调整,带来整体效率的提升。看了以上这些是否觉得意犹未尽?2021年5月20日~22日,由IT168旗下ITPUB企业社区平台主办的第十三届中国系统架构师大会(SACC2021)将在云端进行网络直播。会上,郑吉敏将带来《基于DDD思想的酒店报价引擎重构》的主题演讲,郑吉敏认为SACC是一个展示技术风采的大会,喜欢分享的技术人可以把自己做的不错的项目、架构拿出来分享,喜欢学习的技术人可以借助大会去学习他人的经历和经验。“SACC 2021选择线上直播的方式,大家可以很容易参加到大会中,选择的技术专题都比较流行,相信一定会让所有参与者满载而归。”生活中,郑吉敏喜欢带着家人出去旅游,也喜欢结交朋友,在关系好的朋友面前他总是个“话痨”,从高中开始就一直有一个外号:侃王。来SACC2021,听“侃王”讲基于DDD思想的酒店报价引擎重构。