您当前的位置:首页 > 企业新闻

打通架构与业务领域驱动设计DDD加速企业

2018-04-23 18:14:35

领域驱动设计和微服务架构是时下炙手可热的两个技术辞汇。微服务可以把1个大型的单体利用程序和服务拆分为多个微服务,从而满足服务等级协议,让利用的架构逻辑更清晰而好用。比如,现在愈来愈庞大的、支付宝这类利用里的服务模块被大量利用,可扩大单个组件而不是全部的利用程序堆栈。

随着微服务的火热,领域驱动设计的架构思想也愈来愈被企业和研发团队所重视。1个典型的例子是,几近每个在尝试微服务的团队和产品,都从领域驱动设计的实践当中受益。而领域驱动设计的核心诉求就是能够让业务架构和系统架构构成绑定关系,从而当我们去响应业务变化调剂业务架构时,系统架构的改变是随之自发的。

近日,2017领域驱动设计中国峰会在北京举行。这次活动由国内领域驱动设计思想和实践的领军者——ThoughtWorks的架构咨询师们组织发起,为国内的领域驱动设计实践者们提供了1个相互交换、分享自己团队的成功经验的机会的平台,使得领域驱动设计的架构思想能够在国内被更多人所认知,从而构成更大的范围效应。

作甚DDD?

领域驱动设计组织架构上实现了面向业务领域的弹性可伸缩,对系统功能和业务场景进行领域抽象,并采取分层设计,使得系统针对业务利用的可扩大性大大增加。同时,更好地完善产品架构,避免了依照功能划分致使的服务碎片化和相同概念的重复开发工作,让每一个业务和功能都能平滑落地、快速迭代。同时能够让技术和业务化繁为简,让开发人员轻松地完成工作,为公司沉淀出可以复用的通用域

打通架构与业务领域驱动设计DDD加速企业

,积累业务领域深度知识,拓宽个人的认知边界,成为所属领域专家。

DDD凭仗其强大的多任务处理能力,让很多工程师重新发现了其价值。在微服务架构实践中,人们大量地借用了DDD中的概念和技术。比如1个微服务应当对应DDD中的1个限界上下文;在微服务设计中应当首先辨认出DDD中的聚合根;还有在微服务之间集成时采取DDD中的防腐层设计等等。可以说DDD和微服务有着天生的默契,程序员在做微服务架构时,总能从领域驱动设计中得到启发。

每一个系统环境都有自己的语言,使用1个独立实现和接口与其它有界的上下文来交互调用。领域驱动设计的最小单元是领域模型,通过通用语言,在有界的上下文中实现清晰而明确的搜集需求,为理解扑朔迷离的业务领域提供帮助。

ThoughtWorks咨询和设计总监肖然告知,DDD的想法是让我们的软件实现和1个演进的架构模型保持1致,而这个演进的模型来自于我们的业务需求。领域驱动设计的核心是建立领域模型,确保业务逻辑都在1个模型中,其最显著的优点是减少沟通本钱,发现潜伏需求,加快业务和产品的迭代速度。

业务与架构

DDD思想是关注业务与架构之间的关系,那末业务与架构之间是1种甚么关系呢?

ThoughtWorks高级咨询师余丹妮认为,领域驱动设计强调以业务为核心,对业务领域进行抽象和建模。业务驱动架构的演进发展,同时架构也会反作用于业务。成功的DDD方法应用是贯穿系统的全部生命周期的,这个进程中业务和技术的协作是延续产生的。

应当说,架构是为了解决业务的问题而产生的,没有了业务,架构就没有了存在的条件。在解决同1个业务问题的条件下,更高效,更低本钱的架构,会淘汰低效,高本钱的架构。所以,DDD让架构更高效,打破了架构和业务之间的隔阂,其流行的意义就在此。

作为领域驱动设计国内最早的1批实践者,阿里盒马架构总监张群辉表示,阿里是典型的业务驱动架构,其实不会无端地创建1种架构,虽然阿里是1个技术驱动的公司。“阿里会根据业务的变化来关注架构的走向,围绕商业愿景进行技术创新。DDD就是1种可以选择的方式,让业务平台的效力得到提升,实现业务流程化处理和智能决策。”

尽人皆知,盒马作为阿里巴巴新零售的排头兵,第1次真正意义上涉入零售行业,创建中国新零售模式下的供应链体系,颠覆传统ERP是盒马技术最近几年不停探索的重点。DDD的引入加速了这类愿景的实现。

张群辉表示,阿里对DDD的引入并没有强迫要求,但是身在盒马,非常有必须引入DDD。并且盒马关注供应链,DDD的引入有助于业务的迭代演进,架构师团队可以更好地实现创新,收益非常明显。

DDD的落地

余丹妮认为,企业引入DDD是1个渐进式的梳理进程,其实不是一挥而就。软件架构设计的实质是让系统能够更快地响应外界业务的变化,并且使得系统能够延续演进。DDD让软件架构设计更完善。

而张群辉认为,1个企业引入DDD对架构师团队水平提出了更高的要求,同时企业需要明白DDD需要1个较长时间的投入才会产生效益。“很多时候,DDD的引入与架构师的情怀关系很大,你是不是打算将自己的团队打造成1个DDD化的团队。”

DDD让团队中各个角色都能够采取统1的架构语言,从而避免组件划分进程中的边界错位;让业务架构和系统架构构成绑定关系,从而建立针对业务变化的高响应力架构。

肖然表示,在战略层面,DDD非常强调针对业务问题的分析和分解,通过辨认核心问题域来下降分析的复杂度。在战术层面,DDD强调通过辨认问题域里的不同业务上下文来进行面向业务需求的组件化。最后在实现层面利用成熟的技术模式屏蔽掉技术细节的复杂度。

所以说,通过DDD对复杂的软件问题进行控制,而1个好的领域模型是控制复杂问题的关键。DDD的价值在于提供1种通用的语言,使得领域专家和软件技术人员联系在1起,沟通无歧义。

结语

DDD其实不是软件架构设计的唯1选项,但是其在现今时期却有着非常重要的现实意义。业务与架构的融会是企业进行业务创新的关键,DDD则买通了架构与业务之间的“桥梁”,让业务与功能能够延续迭代演进,为企业的发展提供了动力。

本站内容大部分来源于络,仅供参考,如有侵权请联系删除谢谢!

墙面起砂怎么处理
除油粉
电力涂塑钢管厂家
捉野鸡机器
推荐阅读
图文聚焦