DDD的变与不变
时间:2022-04-05 19:48:02 | 来源:行业动态
时间:2022-04-05 19:48:02 来源:行业动态
2014年,微服务概念的火热带动了DDD的概念被业界重新认知。在随后的5年中,领域驱动设计在架构设计过程中的重要作用逐渐被业界主流所接受。无论是微服务架构、演进式架构、还是企业IT架构设计、企业中台设计,领域驱动设计在各个架构设计层面都发挥着自己的价值,不断推陈出新。
近年来,经过DDD实践者们的不断努力,领域驱动设计被运用于众多企业的实践之中,虽然规模还有待进一步扩大,但成果已相当丰厚。无论是在微服务的应用背后,还是在中台从规划到落地的过程中,再或是在嵌入式C系统重构到领域模型,以及大型寿险核心系统改造项目中,领域驱动设计架构都有不错的表现。2019年领域驱动设计中国峰会,正是一次对国内领域驱动设计实践的检阅和展望。比如京东7FRESH系统架构负责人阎华在会上分享了京东7FRESH的全渠道零售系统构建领域模型的实际操作。
张逸回顾了领域驱动设计的历史,他讲述了DDD的四大里程碑,那就是2004年DDD的提出、领域事件的引、微服务的引和中台战略的引。领域驱动设计(DDD)的概念源于2004年着名建模专家Eric Evans,领域事件的引带来建模范式和架构风格的改变。
微服务的引入是第三个里程碑,其带来了设计理念的改变,从某种意义上微服务的产生催生了DDD中国峰会。张逸表示,领域驱动设计的模式与实践降低了从单体架构迁移到微服务架构的险,因此微服务与领域驱动设计是天作之合,微服务架构采用了领域驱动设计会让微服务的架构迁移更加容易。现在中台的概念非常火,其实DDD与中台的理念也不谋而合。中台是企业级能力复用平台,而DDD与中台融合也就是领域模型的复用。
基于这样的思考,张逸给出了领域驱动设计的新定位,也就是DDD不是技术,而是一种哲学。张逸还引入了领域驱动设计魔,其X轴限定领域驱动设计的内容,Y轴分离领域驱动设计的层次,Z蕴含了轴领域驱动设计的实践。哲学意味着DDD变成一个框架,可以容纳很多东西,因此我总结了领域驱动设计魔扩大了DDD的外延,对DDD进行了一次重新定义,但也要注意领域驱动设计不能解决所有的问题,也不能什么内容都往DDD里面装
具体而言,领域驱动设计魔方将X轴分为业务、技术与管理三个维度,在Y轴则将整个系统的层次分为宏观层次、微观层次和纳米层次。宏观层次是针对整个软件系统开展的战略宏图规划与战略概要设计,通常分为两个阶段:全局分析阶段和战略设计阶段;微观层次是承上启下的关键环节,是领域驱动设计在团队中落地的重要前提;纳层次对应于软件开发过程的实现阶段。X轴和Y轴的相交分别对应Z轴的方法、模式与实践。
领域驱动设计魔引入了业务架构、事件暴、架构模式、RAID暴、康威定律、精益需求管理与敏捷过程管理、场景驱动设计与测试驱动开发、测试策略。