【51CTO.com原创稿件】领域驱动设计(Domain Driven Design,DDD),对于很多人来说还比较陌生,但这其实并不是什么新概念。早在2003年,英国的架构师Eric Evans在处理日常工作时,面对着大型的复杂软件系统,在做系统架构设计的时候,想要尝试总结出一套能够正确地实施面向对象编程的架构设计。***他得出的结论是,不仅仅要面对对象或者编程去做封装,同时也应该让技术人员和业务人员加强合作,一起协同设计架构。他围绕这个设计概念做了两层的实践。
***层实践是战略层的实践,主要解决的是如何识别所要解决的问题中包含的小问题,这些小问题的边界如何识别。第二层实践是基于对整个问题的认知,也就是如何划分工作团队的边界和系统本身的内部模块的边界。
领域驱动设计的思想、原则与模式有助于提高团队成员的面向对象设计能力与架构设计能力,是一套完整而系统的设计方法。它能带来从战略设计到战术设计的规范过程,使设计思路能够更加清晰,设计过程更加规范。领域驱动设计尤其善于处理与领域相关的高复杂度的业务的产品研发,通过它可以建立一个稳定的领域模型内核,有利于领域知识的传递与传承。领域驱动设计强调团队与领域专家的合作,能够帮助建立一个沟通良好的团队组织,构建一致的架构体系。领域驱动设计还善于处理系统架构的演进设计。
DDD China:DDD在中国的布道者
可惜的是,对于这样一个在国外 IT 圈享有盛誉并行之有效的设计方法学,并不为国内大多数的技术人员所知,也未曾运用到项目实践中。直至2014年,云和微服务时代的到来,给软件架构设计提出了新的挑战和机遇,DDD无疑成为了这个时代的优秀的架构方法。领域驱动设计与微服务架构天生匹配,无论是在新项目中设计微服务架构,还是将系统从单体架构演进到微服务设计,都可以遵循领域驱动设计的架构原则。随着微服务架构的普及,组织关注的问题不再是是否选择微服务,而是如何发挥微服务架构本真的价值。在基于DDD精心设计以业务为中心的微服务架构后,云平台部署、容器化、DevOps、CI/CD等将与微服务架构融合协作,以真正达到提升业务响应力的目的,这套完整的体系被称为Cloud Native。
为了给国内的DDD实践者们提供一个互相交流、分享自己团队的成功经验的机会的平台,使DDD的架构思想能够在国内被更多人所认知,从而形成更大的规模效应。作为国内DDD思想和实践的领军者——ThoughtWorks发起了领域驱动设计中国峰会。继***届领域驱动设计中国峰会于2017年成功举办之后,第二届领域驱动设计相关大会——2018领域驱动设计中国峰会(2018 DDD China Conference)近日在北京举行。
演进式架构:持续推动业务创新
全球软件设计与定制***企业ThoughtWorks提出了演进式架构,据DDD China联合发起人,ThoughtWorks资深咨询顾问王威介绍,传统的适应性架构通过配置系统、或者配置文件来支撑整个系统,当业务改变的时候需要更改配置项,来让系统适应新业务流程,此时的开发和运维是完全分开的。演进式架构除了技术、解决方案的维度,还加入了时间的维度,演进式架构的设计本身就是支持由于新业务不断出现所带来的演进式问题,是建立在持续集成、持续交付、DevOps、基础设施即代码的基础之上的,与原来的适应性架构的技术趋势生态不大相同。
DDD China联合发起人,ThoughtWorks资深咨询顾问王威
“通过自动化的工具和架构治理的量化,去保证架构演进的方向和业务演进的方向是一致的,且是同步的,从而保障在一段时间范围内,架构仍然具备对业务的快速响应。”王威表示。
演进式架构把原来的架构设计从文档变成了适应函数,让架构师清晰地看到当前架构的特征,并指出演进方向,让新的架构师可以迅速接任原来的工作。所以,对企业来说,演进式架构可以减少企业对特定架构师的依赖,有效减少因人员变动而对现有IT架构持续演进带来的负面影响。
2018 DDD China Conference还为与会者奉献了三场主题工作坊,在参与感极强的组织形式下,让企业管理者、IT治理者以及一线架构师共同收获知识和成长。
据了解,本次由戴姆勒中国独家呈现(独家冠名赞助)的大会邀请到了来自欧洲和北美的DDD的领军人物,以及国内诸多在过去一年当中努力实践DDD的团队及代表与会,和业界一起分享DDD理论的***发展动态和实践经验总结。戴姆勒大中华区CIO 石峰(Stefan Eberhardt) 也从IT驱动数字化变革的角度分享了在客户需求日新月异的时代背景下,戴姆勒是如何通过自我改革实现“大象转身”,并为消费者提供杰出数字化产品及服务的。以及在这一过程中,关于架构的实践与改变。
谈到DDD的发展趋势,王威表示,从量上来说,越来越多的企业在做互联网转型,DDD可以帮助企业更好地去落地自己的架构,还能适应未来的业务变化。从深度来说,在世界范围内,DDD本身一直在不断发展、不断演进。“相信到一年以后,在DDD这个范畴里会出现很多新的概念来和大家交流。”王威表示。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】