邮箱:www.jungshuodz@163.com
手机:18268652722
电话:18268652722
地址:宁波市北仑区大碶庙前山路45号
发布时间:2024-12-27 07:57:58 人气:
领域驱动设计(DDD)是一种软件开发方法,旨在帮助开发团队更好地理解业务需求并将其映射到软件设计中。使用领域专家、设计人员和开发人员能够理解的通用语言作为相互沟通的工具,在沟通过程中发现领域概念,然后将这些概念设计成领域模型。
自20世纪80年代以来,他作为设计师和程序员参与了许多大型面向对象系统的设计和开发,涉及各种复杂的业务和技术领域。读完这本书的短评后,我想有很多人认为这本书是正确的废话。 10年前我读这本书时也有同样的感觉。 10年后,微服务开始流行,很多人认为这是正确的废话。领域驱动设计已成为我的话题。当我再读这本书的时候,我真的感觉我读懂了。我认为秘密就在于领域驱动设计的六个字。
领域模型是指描述业务领域概念、业务规则和业务流程的模型。它包括实体、值对象、聚合根、领域服务等多个概念。领域模型:领域模型就好比是描述领域中的实体、属性、关系和行为的地图。从研发的理论经验来看,领域是将软件系统的核心业务功能集中到一个核心领域,包括实体、值对象、领域服务、资源库、聚合等概念。
DDD可以基于领域模型边界和上下文边界快速拆分微服务,使系统架构能够适应业务的快速变化。比如,系统并发用户数增长很快,单个应用很快就无法支撑。如果我们从一开始就使用DDD领域驱动设计,我们可以快速将服务拆分为多个微服务,以适应快速增长的用户数量。列表视图主要由两部分组成。领域服务主要负责实体相关的属性和路由动作相关的操作。
领域驱动设计(DDD) 的理念由Eric Evans 在他的同名书中首次描述[1] - 是将我们的注意力集中在领域上。整个过程大致是这样的。开发团队和领域专家共同努力,通过通用语言(Ubiquitous Language)来理解和消化领域知识,将领域知识一一提取并划分为子领域(核心子领域、通用子领域、支持子领域),并在子域上建立模型,然后重复上述步骤,依此类推,建立一组适合当前域的模型。
下面是一些生动的比喻,可以帮助你更好地理解领域驱动设计中的几个概念:基于领域模型的拆分、基于单一职责的拆分以及围绕业务域的功能完整性。当可以自由选择重构的部分时,首先应该着眼于更好地提取核心领域,完善核心的分离,将支撑子领域细化为通用子领域。
因此,在建立领域知识时,我们(开发人员和领域专家)必须交换知识。知识范围涉及领域模型的各个元素。如果一方对模型的描述让另一方感到困惑,那么他应该立即更改。描述直至双方都能接受并理解为止。
相关推荐