大话领域驱动设计——简介

32ba0cf635e7964132ea9314bfb1f127.png

如果说当下最热门的技术概念或架构思想,那么领域驱动设计(DDD)一定占有一席之地。

f065f62d4b593b2542bd0733c883d790.gif

上个系列,我讲了ABP vNext框架在微服务架构下的落地思路,而ABP vNext是基于DDD思想的完整框架之一,同时DDD也是微服务架构服务拆分的主流依据。无论想学好ABP还是微服务架构,首先要理解DDD。这一系列,我就从各个概念,结合在ABP vNext中的用法详细讲解DDD。

37866714a7cc0f47b609a1f0c9618661.gif

DDD是Domain Driven Design的缩写,中文翻译为领域驱动设计。首先要明确一点,DDD是一套方法论,主要面向软件设计的方法论。学习它首先要把它从具体的实现抽离出来,也要从微服务架构的概念里抽离出来,它们是相互独立的概念。而ABP框架是DDD思想的基础落地方案之一。所以是先学思想,再学落地。

d0108bf2139df7024d7a67368340f966.gif

DDD的核心是领域。领域又称为问题域,是对系统业务的抽象,意在将我们的重点放在需要解决的问题本身,而不是如何实现。DDD希望为业务专家(领域专家)和研发人员(技术专家)提供一套完整高效的沟通方式,并在此基础上由他们共同建立可快速落地的系统模型(领域模型)。在此工程中,业务专家不需要去关注技术实现,技术人员应该优先把精力放在理解业务本身而不是实现的细节。

82a2a3fe7738cd8c2e67e42dbfe5a72f.gif

DDD的核心产出结果是领域模型,在过去无论是传统软件工程方法或是基于UML的面向对象建模,软件设计过程都会产出多个不同维度的设计图,例如类图、顺序图、流程图……。但是这样存在一个问题,因为需求不断变更,每次变化我们都要花大量时间修改多个设计图。尤其对于进度比较急项目,经常会出现代码不断修改但是设计图没有足够的时间去维护。慢慢会导致设计图和实际代码不一致甚至区别很大,那么设计图将失去意义。而在DDD的思想中,所有的领域设计,都会绘制在一个图也就是领域模型图中,相当于将过去的多个图合成一个。那么我们改代码的同时,就很容易同步去修正领域模型。

后面的章节,我将从以下几个方面来深入介绍领域驱动设计:

   1. 战略设计和战术设计

   2. 分层架构

   3. 各项概念(实体、聚合、服务、DTO等)

   4. 实现方法

1ca0c9f639e30d02f4572223a287a90c.png

END

6f515dc237610c6e0bf7e1e95cbadba6.png

关注我获得

更多精彩

797518654ed032fdc746921a6cb3478f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值