领域驱动设计 软件核心复杂性应对之道_DDD(领域驱动设计),你学会了没?

一、 什么是(DDD Domain-Driven Design)领域驱动?

DDD(Domain-Driven Design 领域驱动设计)是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题。整个过程大概是这样的,开发团队和领域专家一起通过 通用语言(Ubiquitous Language)去理解和消化领域知识,从领域知识中提取和划分为一个一个的子领域(核心子域,通用子域,支撑子域),并在子领域上建立模型,再重复以上步骤,这样周而复始,构建出一套符合当前领域的模型。

通俗的理解为:先构建领域模型设计,然后通过领域模型设计驱动软件架构的设计。那么什么是领域呢?

二、 什么是领域?

领域:领域并不是什么高深的知识,领域在我看来就是一个行业的划分,比如一个电商领域,肯定包含了,产品,订单,发票,物流的概念。

当我们在要开发一个大型软件系统时,这时就要将系统划分为多个子系统,这时我们对系统的划分是基于领域的,也是基于业务的。

那么哪些概念应该放在子系统中,这时便有界限上下文的概念。

三、 什么是界限上下文?

在一个领域/子域中,我们会创建一个概念上的领域边界,在这个边界中,任何领域对象都只表示特定于该边界内部的确切含义。这样边界便称为限界上下文。限界上下文和领域具有一对一的关系。简单来说就比如说,将一个公司,划分为多个部门,每个部门有各自的成员,每个部门的成员负责各自部门内的任务。

四、 DDD领域驱动设计软件架构?

DDD(领域驱动设计)并不要求采用特定的架构风格,因为它是对架构中立的。你可以采用传统的三层式架构,也可以采用 eric evans的“领域驱动设计

1fdb8713cc4d19b2968fe51d33ee89f8.png

User Interface:负责向用户展现信息,并且会解析用户行为,即常说的展现层。

Applicaiont: 应用层没有任何的业务逻辑代码,它很简单,它主要为程序提供任务处理。

Domain: 这一层包含有关领域的信息,是业务的核心 ,领域模型的状态都直接或间接(持久化至数据库)存储在这一层。

Infrastructure:为其他层提供底层依赖操作。

总结:

(DDD)领域驱动设计只是一种指导程序开发的思想,从领域驱动软件设计架构,当然运用(DDD)领域驱动设计,不是说一定要用哪种设计,当然你运用DDD(领域驱动设计)的思想,而软件架构依然采用原有的三层架构也是可以的.当然也可以采用 Eric Evans的领域驱动设计。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值