09.领域驱动设计:深入学习6本经典推荐书籍

目录

前言

1、《领域驱动设计:软件核心复杂性应对之道》

1.作者简介

2.内容简介

3.推荐理由

4.豆瓣链接

​编辑

2、《实现领域驱动设计》

1.作者简介

2.内容简介

3.推荐理由

4.豆瓣链接

​编辑

3、《领域驱动设计精粹》

1.作者简介

2.内容简介

3.推荐理由

4.豆瓣链接

​编辑

4、《领域驱动设计模式、原理与实践》

1.作者简介

2.内容简介

3.推荐理由

4.豆瓣链接

5、《中台架构与实现 : 基于DDD和微服务》

1.作者简介

2.内容简介

3.推荐理由

4.豆瓣链接

​编辑

6、《复杂软件设计之道:领域驱动设计全面解析与实战》

1.作者简介

2.内容简介

3.推荐理由

4.豆瓣链接


前言

领域驱动设计(英语:domain-driven design,缩写 DDD),是一种软件设计方法论,一种处理高度复杂领域的设计思想,旨在将软件设计与业务领域模型相结合,聚焦业务领域模型来控制业务的复杂性,同时分离技术和业务耦合的复杂性,提高软件的设计质量

DDD之父 Eric Evans 提出领域驱动设计的概念已经有19年,经过这些年的发展,DDD已经从小众的面向对象编码实践,变成了行业内微服务设计的标准实践。

今天推荐6本经典的深入学习领域驱动设计(DDD)书籍比较多,大家可以根据自己需要去学习认为自己需要的几本书籍。

深入学习领域驱动设计(DDD),6本经典的领域驱动设计学习书籍:

  1. 《领域驱动设计:软件核心复杂性应对之道》

  2. 《实现领域驱动设计》

  3. 《领域驱动设计精粹》

  4. 《领域驱动设计模式、原理与实践》

  5. 《中台架构与实现 : 基于DDD和微服务》

  6. 《复杂软件设计之道:领域驱动设计全面解析与实战》

1、《领域驱动设计:软件核心复杂性应对之道》

本书是领域驱动设计方面的经典之作。全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。

本书适合各层次的面向对象软件开发人员、系统分析员阅读。

1.作者简介

  • Eric Evans,「领域驱动设计之父」,世界杰出软件建模专家。

  • 他创建了Domain Language公司,致力于帮助公司机构创建与业务紧密相关的软件。他在世界各地宣讲领域驱动设计(Domain-Driven Design,DDD)的思想,开设课程,参加会议,接受专访,拥有大批的追随者。

  • 从20世纪80年代开始,他就以设计师和程序员的双重身份参与过许多大型面向对象系统的设计和开发,涉及各种复杂的业务和技术领域。同时,他还培训和指导过许多开发团队开展极限编程实践。

2.内容简介

  • 《领域驱动设计:软件核心复杂性应对之道》是领域驱动设计方面的经典之作。全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。

  • 书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些最佳实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计最佳实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。

  • 《领域驱动设计:软件核心复杂性应对之道》适合各层次的面向对象软件开发人员、系统分析员阅读。

3.推荐理由

领域驱动设计之父,写的官方书。

全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。

4.豆瓣链接

领域驱动设计 (豆瓣)

2、《实现领域驱动设计》

本书分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。

本书适合架构师和程序员,同时也可以作为一本DDD 参考书。

1.作者简介

  • Vaughn Vernon,经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验

  • 他提倡通过创新来简化软件的设计和实现。从20世纪80年代开始,他便开始使用面向对象语言进行编程;在 20世纪 90年代早期,他便在领域建模中应用了领域驱动设计,那时他使用的是Smalltalk语言。

2.内容简介

  • 领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?Vaughn Vernon 的这本《实现领域驱动设计》为我们给出了全面的解答。

  • 《实现领域驱动设计》分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。《实现领域驱动设计》共分为14 章,在DDD 战略部分,《实现领域驱动设计》向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD 实现来说非常有用。

  • 《实现领域驱动设计》在DDD 的思想和实现之间建立起了一座桥梁,架构师和程序员均可阅读,同时也可以作为一本DDD 参考书。

3.推荐理由

本书分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。

4.豆瓣链接

实现领域驱动设计 (豆瓣)

3、《领域驱动设计精粹》

本书主要内容为DDD对于广大读者的意义、从战略层面进行设计、从战术层面进行设计,以及相关的辅助工具。

1.作者简介

  • Vaughn Vernon,经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验。

2.内容简介

  • 领域驱动设计(DDD)是时下软件设计领域中的热门话题,它通过指导我们构建领域模型,来表达丰富的软件功能需求,并由此实现可以满足用户真正需要的软件。然而在实践过程中,由于不同的角色对于DDD的核心概念和主要工具的理解不同,常常会造成协作上的不一致。

  • 为了帮助和指导面向对象的开发人员、系统分析人员和设计人员更加合理地组织工作,各有侧重、有条不紊地进行复杂系统的开发,并有效地建立丰富而实用的领域模型,《领域驱动设计精粹》的作者Vaughn Vernon将自己近年来在领域驱动设计领域的理解进一步提炼,并将本书以精粹的形式呈现给广大的读者。

  • 《领域驱动设计精粹》的内容包括:DDD对于广大读者的意义、从战略层面进行设计、从战术层面进行设计,以及相关的辅助工具。

  • 当然,仅仅通过此书的阅读无法深入地掌握领域驱动设计的精髓,无论你是什么经验水平或角色,请阅读本书并在项目中实践DDD。并在这之后,再重读此书,看看你从项目的经历中学到了什么。反复这样的循环,你将会获益匪浅。

3.推荐理由

本书主要内容为DDD对于广大读者的意义、从战略层面进行设计、从战术层面进行设计,以及相关的辅助工具。

4.豆瓣链接

领域驱动设计精粹 (豆瓣)

4、《领域驱动设计模式、原理与实践》

本书专注于介绍分解复杂问题空间的原则和实践,以及构成可维护解空间的实现模式和佳实践。

1.作者简介

  • Scott Millett,http://Iglu.com的IT总监

  • Nick Tune,协作和领域驱动设计为复杂业务问题提供解决方案的软件开发者

2.内容简介

  • 本书将领域驱动设计(DDD)思想体系的观点和理论提炼成了一本实践手册,让你可以简化复杂问题域的应用程序开发。

  • 本书专注于介绍分解复杂问题空间的原则和实践,以及构成可维护解空间的实现模式和最佳实践。

  • 你将学习如何通过使用战术模式构建有效领域模型以及如何通过应用DDD的战略模式维持其完整性。

  • 本书提供了完整的环环相扣的编码示例来揭示用于集成分解和分布式的解空间的技术,同时,最佳实践和模式的编码会为你提供如何架构可维护和可扩展的应用程序的建议。

3.推荐理由

本书专注于介绍分解复杂问题空间的原则和实践,以及构成可维护解空间的实现模式和最佳实践。

4.豆瓣链接

领域驱动设计模式、原理与实践 (豆瓣)

5、《中台架构与实现 : 基于DDD和微服务》

本书系统讲解如何基于DDD思想实现中台和微服务协同设计和落地。

1.作者简介

  • 欧创新,大型保险公司资深架构师,拥有十多年的软件架构设计经验。热衷于DDD、中台和分布式微服务架构设计。

    极客时间《DDD实战课》专栏作者,在InfoQ发表多篇关于DDD、中台、微服务和微前端技术实践的有深度和影响力文章。

  • 邓頔,大型保险公司高级工程师,全国青年岗位能手。致力于基于DDD的企业级中台微服务架构改造实践,精通前端开发相关技术栈,拥有丰富的企业级微前端实战经验。

2.内容简介

  • 这是一部系统讲解如何基于DDD思想实现中台和微服务协同设计和落地的著作。

  • 它将DDD、中台和微服务三者结合,一方面,它为中台的划分和领域建模提供指导,帮助企业更好地完成中台建设,实现中台的能力复用;一方面,它为微服务的拆分和设计提供指导,帮助团队提升分布式微服务的架构设计能力。给出了一套体系化的基于DDD思想的企业级前、中、后台协同设计方法。

  • 本书注重实战,汇聚了大量分布式架构的最新设计方法、思想和理念,同时包含大量的案例和代码,是理论与实践相结合的最佳经验分享。交互式的行文风格,文字有活力,内容不刻板,简洁易懂。

  • 本书共分为六个部分:

    第一部分 认识中台(第1~4章)

    主要从业务中台、数据中台、技术中台以及与之匹配的组织架构等多个方面分析传统企业中台转型应该具备的能力,带你初步了解DDD是如何指导中台和微服务设计,并厘清它们的协作关系。

    第二部分 DDD基本原理(第5~11章)

    通过浅显易懂的案例讲解DDD的核心基础知识、设计思想、原则和方法等内容,了解它们之间的协作和依赖关系,做好中台实践前的准备工作。

    第三部分 中台领域建模和微服务设计(第12~19章)

    首先,通过案例手把手带你用DDD方法完成中台和微服务的全流程设计,深刻理解DDD在中台领域建模和微服务设计中的步骤、方法、设计思想和价值;然后,通过一个完整案例带你了解用DDD设计方法完成领域建模与微服务设计的全流程。

    第四部分 前端设计(第20~21章)

    引入微前端和单元化的设计思想,通过前端微服务化和单元化设计思想,解决业务中台建设完成后前端应用仍然为单体和前后端服务集成复杂的难点。此外,还探讨了基于领域模型的单元化设计方法。

    第五部分 中台设计案例(第22章)

    采用自顶向下的领域建模策略,通过案例讲解中台设计的完整流程。涵盖业务领域分解、中台领域建模、微服务和微前端设计、单元化设计以及业务和数据如何融合等内容。

    第六部分 总结(第23~24章)

    结合作者多年的设计经验和思考,阐述单体应用向微服务架构的演进策略、如何避免陷入DDD设计的常见误区、微服务设计原则以及分布式架构下的关键设计等内容。

3.推荐理由

本书系统讲解如何基于DDD思想实现中台和微服务协同设计和落地。

4.豆瓣链接

中台架构与实现 (豆瓣)

6、《复杂软件设计之道:领域驱动设计全面解析与实战》

本书主要面向拥有一定实践经验的软件产品经理、领域专家、软件设计开发相关从业人员,相关初级从业者也可阅读本书。

涉及大量软件系统实现相关的技术和架构,读者在学习DDD的同时,也可以掌握这些技术、架构在DDD实现中的灵活应用。

全面解析了DDD的分析方法和技术架构,包括领域驱动设计基础、领域驱动战略设计(有界上下文和统一语言)、聚合设计、实体和值对象、CQRS架构和事件溯源,使用经典的货物运输系统案例进行了完整、详细的综合演示。

1.作者简介

  • 彭晨阳,DDD等软件架构专研网站——解道(Jdon)的创办者,长期关注国内外软件架构思想和设计开发的新动向,自DDD提出以来,持续研究与实践DDD。

  • 行业经验——具有近30年的软件系统设计与开发经验,以及丰富的领域实战经验,包括ERP、电子商务、政务、电力、银行、大型游戏等。

  • 培训经历——致力于传播软件设计开发新思想、新技术,曾为近百家企业提供培训咨询服务,包括华为、阿里等企业。

  • 擅长方向——系统架构设计与实现,设计模式与框架,并发编程和微服务、区块链等分布式系统与事务。擅长复杂系统的软件架构和领域建模。

2.内容简介

  • 领域驱动设计简称DDD,《复杂软件设计之道:领域驱动设计全面解析与实战》前6章全面解析了DDD的分析方法和技术架构,包括领域驱动设计基础、领域驱动战略设计(有界上下文和统一语言)、聚合设计、实体和值对象、CQRS架构和事件溯源,第7章使用经典的货物运输系统案例进行了完整、详细的综合演示。

  • 《复杂软件设计之道:领域驱动设计全面解析与实战》同时引入了DDD的新发展成果,如事件风暴建模,并以此建模方式替代传统的DDD建模方式讲解了多个案例。还涉及大量软件系统实现相关的技术和架构,读者在学习DDD的同时,也可以掌握这些技术、架构在DDD实现中的灵活应用。

  • 另外,每个概念或方法的讲解过程都穿插了具体实例,以方便读者结合实例进行学习;第2~7章每章后都有总结与拓展,将本章涉及的案例和知识进行总结,并引入国际DDD专家的心得经验,试图告诉读者一条DDD实战中行之有效的途径。

  • 《复杂软件设计之道:领域驱动设计全面解析与实战》主要面向拥有一定实践经验的软件产品经理、领域专家、软件设计开发相关从业人员,相关初级从业者也可阅读本书。

3.推荐理由

全面解析了DDD的分析方法和技术架构,包括领域驱动设计基础、领域驱动战略设计(有界上下文和统一语言)、聚合设计、实体和值对象、CQRS架构和事件溯源,使用经典的货物运输系统案例进行了完整、详细的综合演示。

4.豆瓣链接

复杂软件设计之道 (豆瓣)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习和大数据技术的进步在自然语言处理领域的应用

文章目录 每日一句正能量前言一、深度学习在NLP中的应用二、大数据技术在NLP中的应用三、深度学习和大数据技术的影响四、应用场景后记 每日一句正能量 努力学习,勤奋工作,让青春更加光彩。 前言 随着深度学习和大数据技术的迅猛发展,自然语…

Qt加载网页崩溃 ASSERT:“m_adapterClient“ in file ...

1、软件启动后加载网页无异常,点击按钮,加载新网页时崩溃 崩溃代码: QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) { Q_UNUSED(type); return this; } 2、原因 Qt只是调用谷歌的浏览器引擎&#xff…

iPad“粘贴自”字样不消失解决办法

iPad“粘贴自”字样不消失解决办法 好无语,写论文主要就靠iPad看资料,复制粘帖的时候卡死搞得我无敌焦躁,问了🍎支持的客服才解决,方法如下:1.音量上键按一下 2.音量下键按一下 3.一直按开关机键直到出现苹…

ChatGPT实战100例 - (14) 打造AI编程助手 Code Copilot

文章目录 ChatGPT实战100例 - (14) 打造AI编程助手 Code Copilot一、Code Copilot AI编程助手二、制作代码生成器2.1 定义生成器框架2.2 从现有代码提取代码模板三、进行代码优化ChatGPT实战100例 - (14) 打造AI编程助手 Code Copilot 一、Code Copilot AI编程助手 Code Copi…

ASP.NET的GridView控件中,实现同列内容合并

在ASP.NET的GridView控件中,实现同列内容合并的方法主要有两种:一种是使用RowDataBound事件,另一种是使用自定义定义函数 使用RowDataBound事件 这种方法是在GridView的每一行绑定数据时,比较当前行和前一行的同一列的值&#x…

031 递归

何为递归 示例 public static void main(String[] args) {System.out.println(fn(5)); }static int fn(int a){return a 1 ? 1 : a * fn(a - 1); }

01背包,但是bit -枚举 + 位运算

题面 分析 思考什么情况可以装,如果一个数或进去不超过 m m m 就可以加入,否则不能加入,那么如果某一个数和 m m m 或运算能够分为两部分,前一部分进行或运算为 m m m 的子集,后一部分可以是任何数,存…

浅析Redis③:命令处理之数据返回Client(下)

写在前面 Redis作为我们日常工作中最常使用的缓存数据库,其重要性不言而喻,作为普通开发者,我们在日常开发中使用Redis,主要聚焦于Redis的基层数据结构的命令使用,很少会有人对Redis的内部实现机制进行了解&#xff0c…

Android Input系统之 InputMonitor 更新流程

分析源码为 android 12 一、InputMonitor层面分析 在 WMS 添加,更新和删除Window 的时候都会调用 InputMonitor 的 updateInputWindowsLw 更新 window 信息。如下是删除window 时候的调用函数: WMS.java void removeWindowToken(IBinder binder, boo…

STM32 UART/USART的低功耗模式和节能优化策略

在STM32微控制器中,UART/USART模块的低功耗模式和节能优化策略可以帮助减少系统功耗,并延长电池寿命。下面我将介绍一些常用的低功耗功能和相应的节能优化策略,并提供一个示例代码来演示如何实现它们。 ✅作者简介:热爱科研的嵌入…

华为鸿蒙系统第三方桌面手机管家版本号12.0.1.330

起因 放假在家,准备把自己的旧手机给家里老人看小视频,但是老人不懂智能手机的复杂操作,就想换成《极简桌面》这个软件,在“设置->默认应用->桌面”,但是华为为了“保护用户的隐私以及合法权益”禁用了第三方启…

202417读书笔记|《画•大师 阿尔丰斯•穆夏》——在明亮大胆的色调中熠熠生辉

202417读书笔记|《画•大师 阿尔丰斯•穆夏》——在明亮大胆的色调中熠熠生辉 这是读完的第二本或者第三本穆夏的画集。很赞,他的绘画风格,构图,元素,取大自然的月桂树,常青藤,🌙的不同形态&…

链表与二叉树-数据结构

链表与二叉树-数据结构 创建叶子node节点建立二叉树三元组:只考虑稀疏矩阵中非0的元素,并且存储到一个类(三元组)的数组中。 创建叶子node节点 class Node{int no;Node next;public Node(int no){this.nono;} } public class Lb…

Rsnapshot备份服务器

1、资源服务器设置免登录 资源服务器生成公钥和私钥 ssh-keygen 资源服务器将公钥复制到备份服务器 ssh-copy-id root192.168.1.129 备份服务器测试免密登录 ssh root192.168.1.128 2、顶顶顶顶 3、第三方士大夫 4、似懂非懂 5、是的范德萨发 6、第三方士大夫

Java实现对接微信支付功能接口详解(三)

本系列文章简介: 微信支付是一种在线支付解决方案,允许用户通过微信内的支付功能进行付款。它提供了多种支付方式,包括扫码支付、公众号支付、小程序支付等。在Java应用程序中实现微信支付功能,可以为用户提供方便快捷的支付体验。…

Fink CDC数据同步(三)Flink集成Hive

1 目的 持久化元数据 Flink利用Hive的MetaStore作为持久化的Catalog,我们可通过HiveCatalog将不同会话中的 Flink元数据存储到Hive Metastore 中。 利用 Flink 来读写 Hive 的表 Flink打通了与Hive的集成,如同使用SparkSQL或者Impala操作Hive中的数据…

Android-service

1. 预知识(安卓版本) public static final int BASE 1; //Android 1.0public static final int BASE_1_1 2; //Android 1.1public static final int CUPCAKE 3; //Android 1.5public static final…

Java 正则表达式总结

Java 正则表达式总结 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编。今天,我们将深入探讨Java正则表达式,这是一种强大的文本匹配和处理工具,用于处理字符串的模式匹配。 1. 正则表达式简介 正则表达式是…

ABC339 A-G

Japan Registry Services (JPRS) Programming Contest 2024 (AtCoder Beginner Contest 339) - AtCoder 离AK ABC最近的一集,写完F还剩十分钟聊天去了,赛后一看题一眼主席树贴板子改一改十分钟过了...前几题感觉真的阅读理解... A - TLD 题意&#xf…

流畅的Python(七)-函数装饰器和闭包

一、核心要义 主要解释函数装饰器的工作原理,包括最简单的注册装饰器和较复杂的参数化装饰器。同时,因为装饰器的实现依赖于闭包,因此会首先介绍闭包存在的原因和工作原理。 二、代码示例 1、变量作用域规则 #!/usr/bin/env python # -*-…