合集-领域驱动设计-DDD

摘要:序 ​ 有很多因素会使软件开发复杂化,但最根本的原因是问题领域本身错综复杂。如果你要为一家人员复杂的企业提高自动化程度,那么你开发的软件将无法回避这种复杂性,你所能做的只有控制这种复杂性。 ​ 控制复杂性的关键是有一个好的领域模型,这个模型不应该仅仅停留在领域的表名,而是要透过表象抓住领域的实质结构 阅读全文
posted @ 2023-04-10 22:40 LHX2018 阅读(76) 评论(0) 推荐(0) 编辑
摘要:第一部分 让领域模型发挥作用 ​ 每个模型都表示人们感兴趣的某方面显示或某种想法。模型是一种简化。它是对现实的解释,并把与解决问题密切相关的方面抽象出来,而忽略无关的细节。 ​ 每个软件程序的目的都是为了执行某项活动,或是满足用户的某种需求。用户会把软件程序应用于某个主题区域,这个区域就是软件的领域 阅读全文
posted @ 2023-04-10 22:43 LHX2018 阅读(77) 评论(0) 推荐(0) 编辑
摘要:第二章 语言的交流和使用 2.1 模式 ​ 由于语言上存在鸿沟,领域专家们只能模糊地描述他们想要的东西。开发人员虽然努力去理解一个自己不熟悉的领域,但也只能形成模糊的认识。有少数的团队成员会学着同时说这两种语言,但由于这样的人太少了,信息流会遭遇瓶颈问题,而且他们的翻译也不准确。 ​ 如果语言支离破 阅读全文
posted @ 2023-04-16 09:26 LHX2018 阅读(52) 评论(0) 推荐(0) 编辑
摘要:三、绑定模型和实现 模型种类繁多,目的各有不同,即使是那些仅用于软件开发项目的模型也是如此。领域驱动设计要求模型不仅能够指导早期的分析工作,还应该成为设计的基础。这种设计方法对于代码的编写有着重要的暗示作用。不太明显的一点就是:领域驱动设计要求一种不同的建模方法..... 3.1 模式:model- 阅读全文
posted @ 2023-04-22 09:55 LHX2018 阅读(44) 评论(0) 推荐(0) 编辑
摘要:第二部分 模型驱动设计的构造块 设计原则:职责驱动设计 第四章 分离领域 ​ 在软件中,专门用于解决领域问题的那部分通常只占整个软件系统的很小一部分,这与其重要性远远不成比例。要想实现最佳的设计构思,就得去研究模型中的元素并且将它们视为一个系统。绝不能像在夜空中辨认星座一样,勉强把领域对象从许多对象 阅读全文
posted @ 2023-05-01 01:00 LHX2018 阅读(41) 评论(0) 推荐(0) 编辑
摘要:第五章 软件中所表示的模型 着重区分用于表示模型元素的三种模式:entity,value object和service 一个对象是用来表示某种具有连续性和标识的事物的呢(可以跟踪它所经历的不同状态,甚至可以跨不同的实现跟踪它),还是用于描述某个事物的某种状态的属性呢?这是entity和value o 阅读全文
posted @ 2023-05-07 11:28 LHX2018 阅读(63) 评论(0) 推荐(0) 编辑
摘要:第六章 领域对象的声明周期 接下来,我们将注意力转移到生命周期的开始阶段,使用factory(工厂)来创建和重建复杂对象,并使用aggregate来封装它们的内部结构。最后,在生命周期的中间和末尾实验repository(存储库)来提供查找和检索持久对象并封装庞大基础设施的手段。 使用aggrega 阅读全文
posted @ 2023-05-13 13:41 LHX2018 阅读(89) 评论(0) 推荐(0) 编辑
摘要:## 第七章 使用语言:一个扩展的实例 ### 7.1 货物运输系统简介 1)跟踪客户货物的主要处理部署 2)事先预约货物 3)当货物到达其处理过程中的某个位置时,自动向客户寄送发票 >一个货物从货主手上通过托运公司运输货物,从起始点到目的地,托运公司(可能只负责一段路途,再由合作伙伴/外包/私人等 阅读全文
posted @ 2023-05-22 18:38 LHX2018 阅读(71) 评论(0) 推荐(0) 编辑
摘要:# 第三部分 通过重构来加深理解 要想成功地开发出实用的模型,需要注意以下三点 1. 复杂巧妙地领域模型是可以实现的,也是值得我们去花费力气实现的 2. 这样的模型离开不断地重构是很难开发出来的,重构需要领域专家和热爱学习领域知识的开发人员密切参与进来 3. 要实现并有效地运用模型,需要精通设计技巧 阅读全文
posted @ 2023-05-26 23:08 LHX2018 阅读(25) 评论(0) 推荐(0) 编辑
摘要:## 9. 将隐式概念转变为显式概念 若开发人员识别出设计中隐含的某个概念或是在讨论中受到启发而发现一个概念时,就会对领域模型和相应的代码进行许多转换,在模型中加入一个或多个对象或关系,从而将此概念显式地表达出来。 ### 9.1 概念挖掘 #### 9.1.1 倾听语言 用户总是不停地谈论报告中的 阅读全文
posted @ 2023-06-05 09:11 LHX2018 阅读(32) 评论(0) 推荐(0) 编辑
摘要:## 10.柔性设计 软件的最终目的是为用户服务。但首先它必须为开发人员服务。在强调重构的软件开发过程中尤其如此。随着程序的演变,开发人员将重新安排并重写每个部分。他们会把原有的领域对象集成到应用程序中,也会让它们与新的领域对象进行集成。甚至几年以后,维护程序还将修改和扩充代码。人们必须要做这些工作 阅读全文
posted @ 2023-06-09 21:36 LHX2018 阅读(30) 评论(0) 推荐(0) 编辑
摘要:## 11. 分析模式的应用 马丁 分析模式:表示业务建模中的常见构造 分析模式的最大作用是借鉴其他项目的经验,把那些项目中所做的广泛的设计方向讨论和实现结果的经验与当前的模型结合起来。 记账:钱不会无中生有,也不会无故消失。它只能从一个账户迁移到另一个账户。 当你可以幸运地使用一种分析模式时,它一 阅读全文
posted @ 2023-06-17 18:57 LHX2018 阅读(26) 评论(0) 推荐(0) 编辑
摘要:第四部分 战略设计 随着系统的增长,它会变得越来越复杂,当我们无法通过分析对象来理解系统的时候,就需要掌握一些操纵和理解大模型的技术了。 三大主题:上下文、精炼和大比例结构。 上下文:模型必须在逻辑上保持整体的一致 精炼:减少混乱,并且把注意力集中到正确的地方 大比例结构:描述整个系统。respon 阅读全文
posted @ 2023-06-24 09:25 LHX2018 阅读(46) 评论(0) 推荐(0) 编辑
摘要:## 15.精炼 如何才能专注于核心问题而不被大量的次要问题淹没呢?分层架构可以把领域概念从技术逻辑中(技术逻辑确保了计算机系统能够运转)分离出来,但在大型系统中,即使领域被分离出来,它的复杂性也可能仍然难以管理。 精炼是把一堆混杂在一起的组件分开的过程,以便从中提取出最重要的内容,使得它更有价值, 阅读全文
posted @ 2023-07-02 23:11 LHX2018 阅读(18) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示