关键词:
可以将DDD看成一种开发思想体系;它促成了一种新的以领域为中心的思维方式。
它是一种学习过程,而非最终目标,这就是DDD的最大优势。
任何团队都可以编写一个软件来满足一组用例的需求,但那些将时间和精力花在其正在处理的问题域中的团队则能够持续演化产品以满足新的业务用例。
DDD本身并非一种严格的方法论,而是必须与一些迭代式软件项目方法论结合使用以构建并演化一个有用的模型。
由此可见下面的这些理解,存在很大的误区:
1、战术模式是DDD的关键
这明显不对,DDD并不是一种面向对象的设计,也不是一种以代码为中心的思想体系或者模式语言。
DDD与其说是软件设计模式 不如说是通过协作来解决问题的方法。其目的并非编写优雅的代码。
软件不过是DDD的一个构件而已。
2、DDD是一套框架
这一点可能我们现在也是这么错的理解的。那为何说它不是一套具体的框架呢?
DDD不需要一套特殊的框架或数据库。代码中实现的模型遵循POCO(纯老式的C#对象)原则,该原则确保模型完全没有任何基础代码以便不会出现干扰其以领域为中心的目的。虽然面向对象的方法论对于模型构造很有用,但这绝不是强制性的。
DDD在架构上具有不可知性,因为不存在你必须遵循的固定单一的架构样式以实现它。Evans的文章中介绍了一种分层架构样式,但这并非唯一的选项。架构样式可以变化,因为它们应该在有界上下文级别应用,而非应用程序级别。
3、DDD是一颗灵丹妙药
我本以为DDD可以让我成为大神,显然我要失望了,但还是要学完,至少不是毒药。
DDD可能需要付出大量努力,它需要迭代式开发方法论,以业务为向导以及聪明的开发人员。
所有的软件项目都能从DDD的分析实际中获益(例如提炼问题域),也能从战略模式中获益(例如分离一个表示领域逻辑的代码模型)。不过,并非所有软件项目都需要DDD的战术模式来构建一个富领域模型。寻常的领域不需要先进复杂的模型,因为她们只有很少或者没有领域逻辑。
ddd学习笔录——提炼问题域之知识提炼与协作
提炼问题域的意义理解一个复杂问题域以便创建简单且有用的模型需要深入详尽的知识以及深刻的见解,这些只能通过与从内到外理解该领域的人协作得到。对模型的设计进行连续实验和探究正是DDD的能力所能实现的。只有通过... 查看详情
ddd学习笔录——提炼问题域之知识提炼与协作的基本原则
1、通过通用语言达成共识通用语言,已经强调过好多遍了,在DDD再怎么重视都不为过,后面可能还会讲。知识提炼的输出以及共识的构建就是常见的通用语言(UL)。当与业务相关人员和主题专家进行建模时,每个人都应该有意识... 查看详情
学习:ddd领域驱动设计
DDD:Domain-drivenDesign(领域-驱动->设计)->领域驱动领域模型设计->领域模型驱动代码实现 摘自网络(汤雪华的博客)《概念总结》领域就是问题域,有边界,领域中有很多问题;任何一个系统要解决的那个大问题都对应... 查看详情
我对领域驱动设计(ddd)的学习成果
领域驱动设计之领域模型2004年EricEvans发表Domain-DrivenDesign–TacklingComplexityintheHeartofSoftware(领域驱动设计),简称EvansDDD。领域驱动设计分为两个阶段:1.以一种领域专家、设计人员、开发人员都能理解的“通用语言”作为相互交... 查看详情
初学ddd-领域驱动设计
这几天刚开始学习DDD,看了几篇大神的文章,现在只是知道了几个名词,还没有详细的学习。结合自己的工作经历,说说自己的看法,请各位大神多多指点。 最开始用的比较多的是以数据库表建立模型驱动开发。后来发... 查看详情
ddd(领域驱动设计)思想解读及优秀实践
...想解读及优秀实践第1章领域驱动设计的背景和来源理解学习DDD的必要性,DDD能对我们带来什么帮助,它的核心思想和解决的痛点问题是什么,它的发展历史、现状和未来前景如何?它和现有方法体系的联系和区别... 查看详情
ddd学习笔录——提炼问题域之有效提炼知识的模型
方式六:延迟对模型中概念的命名对领域建模时命名很重要。因为在不断的知识提炼过程中经常会发现已经被命名的概念与你最初理解的有出入,这时你当初的命名就会变成一个问题。其问题在于 最初选作名称的这个词所带... 查看详情
ddd学习笔录——简介ddd的战术模式问题空间和解空间
DDD的战术模式DDD的战术模式(也称为模型构造块)是一个帮助创建用于复杂有界上下文的有效模型的模式集合。也就是我们常说的设计模式。问题空间问题空间将问题域提炼成更多可管理的子域,是真对于问题域而言的。DDD问题空... 查看详情
在领域驱动设计 (DDD) 中建模查找表的实用方法是啥?
...么?【发布时间】:2010-10-2222:47:41【问题描述】:我刚刚学习DDD(EricEvans的书在我面前打开),我遇到了一个我找不到答案的问题。当您只是想获得一个简单的查找记录列表时 查看详情
领域驱动设计实战-ddd
领域驱动设计实战领域驱动(DDD,DomainDrivenDesign)为软件设计提供了一套完整的理论指导和落地实践,通过战略设计和战术设计,将技术实现与业务逻辑分离,来应对复杂的软件系统。本系列文章准备以实战的角度来介绍DDD,首... 查看详情
ddd领域驱动设计精要
本文算是《领域驱动设计》这本书的读书笔记,加上自己的一些读后感。网上有很多这本书的读书笔记,但是都是别人的,不如自己总结的理解深刻。建议大家在读这本书时结合《实现领域驱动设计》一起看,同时,一定要... 查看详情
ddd领域驱动设计-ddd概览
参考技术A#DDD概览##启迪领域可以理解为业务,领域专家就是对业务很了解的人。限界上下文也就是微服务的边界,也可以理解为微服务,一个限界上下文=一个微服务。个人理解领域驱动设计就是微服务驱动设计,从战略上先进... 查看详情
ddd(领域驱动设计)从入门到精通
参考技术A一、DDD领域驱动设计-基本原理1、DDD领域驱动设计-入门介绍2、DDD领域驱动设计-基本概念 2.1.DDD领域驱动设计-领域和子域 2.2.DDD领域驱动设计-限界上下文 2.3.DDD领域驱... 查看详情
ddd领域驱动设计:cqrs架构模式
...过程中必然会面临许多的问题,「模式」是系统架构领域中一种常见的手段,能够帮助开发人员与架构师在遭遇某种较为棘手& 查看详情
浅谈我对ddd领域驱动设计的理解
目录从遇到问题开始DDD切入点1-理解概念什么是领域(Domain)?什么是设计(Design)?什么是驱动(Driven)?概念总结:DDD切入点2-理解领域、拆分领域、细化领域理解领域知识是基础拆分领域细化子域DDD切入点3-领域模型设计领... 查看详情
ddd「领域驱动设计」分层架构初探(代码片段)
...层架构的一些理解分享给大家,我对于该分层架构还处于学习阶段理解有误的地方请指出。本次会以一个案例来说明各个分层的作用以及他们之间的调用关系,还有本次的重点不在于DDD,因为这个我还未 查看详情
领域模型驱动设计(ddd)之模型提炼
...模其实业务领域建模同样是一个比平台架构更复杂更需要学习的新的领域 相反在实践中我们技术人员在经过冗长的平台架构学习和实践后就匆忙开始项目开发这时是什么指导他们进行软件业务实现呢?大部分可能是依赖数据... 查看详情
领域驱动设计(ddd)中简单易用的10种技巧
领域驱动设计(DDD),因非常适合与微服务进行配合而闻名,因《领域驱动设计》那本书的难懂而让人望而却步。其实《领域驱动设计》这本书讲的是:以领域为核心,在代码中体现领域的思想,开发人员和领域专家要紧密沟通。... 查看详情