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.一直按开关机键直到出现苹…

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); }

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

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

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

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

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

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

链表与二叉树-数据结构

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

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

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

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

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

前端学习笔记 | HTML5+CSS3静态网页制作的技巧(持续更新)

注:本文的css样式均使用less写法 1、字体居中 (1)先text-align:center;行内元素水平居中 (2)再line-heigh:(盒子高度);行内元素垂直居中 text-align: center;line-height: ( 30 / vw ); 2、盒子居中 情景1&#…

【课程作业_01】国科大2023模式识别与机器学习实践作业

国科大2023模式识别与机器学习实践作业 作业内容 从四类方法中选三类方法,从选定的每类方法中 ,各选一种具体的方法,从给定的数据集中选一 个数据集(MNIST,CIFAR-10,电信用户流失数据集 )对这…

【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)

手把手零基础带你玩转大数据流式处理引擎Flink(运行机制原理加深) 前提介绍运行Flink应用运行机制Flink的两大核心组件JobManagerTaskManagerTaskSlot Flink分层架构Stateful Stream ProcessingDataStream和DataSetDataStream(数据流&#xf…

GPIO中断

1.EXTI简介 EXTI是External Interrupt的缩写,指外部中断。在嵌入式系统中,外部中断是一种用于处理外部事件的机制。当外部事件发生时(比如按下按钮、传感器信号变化等),外部中断可以立即打断正在执行的程序&#xff0…

大红喜庆版UI猜灯谜小程序源码/猜字谜微信小程序源码

今天给大家带来一款UI比较喜庆的猜灯谜小程序,大家看演示图的时候当然也是可以看得到那界面是多么的喜庆,而且新的一年也很快就来了,所以种种的界面可能都比较往喜庆方面去变吧。 这款小程序搭建是免服务器和域名的,只需要使用微信开发者工具…

Linux一键部署telegraf 实现Grafana Linux 图形展示

influxd2前言 influxd2 是 InfluxDB 2.x 版本的后台进程,是一个开源的时序数据库平台,用于存储、查询和可视化时间序列数据。它提供了一个强大的查询语言和 API,可以快速而轻松地处理大量的高性能时序数据。 telegraf 是一个开源的代理程序,它可以收集、处理和传输各种不…

Linux开发工具

前言:哈喽小伙伴们,经过前边的学习我们已经掌握了Linux的基本指令和权限,相信大家学完这些之后都会对Linux有一个更加深入的认识,但是Linux的学习可以说是从现在才刚刚开始。 这篇文章,我们将讲解若干个Linux的开发工…

Java基础数据结构之Map和Set

Map和Set接口 1.Set集合:独特性与无序性 Set是Java集合框架中的一种,它代表着一组无序且独特的元素。这意味着Set中的元素不会重复,且没有特定的顺序。Set接口有多个实现类,如HashSet、LinkedHashSet和TreeSet。 2.Map集合&…

Redis核心技术与实战【学习笔记】 - 19.Pika:基于SSD实现大容量“Redis”

前言 随着业务数据的增加(比如电商业务中,随着用户规模和商品数量的增加),就需要 Redis 能保存更多的数据。你可能会想到使用 Redis 切片集群,把数据分散保存到不同的实例上。但是这样做的话,如果要保存的…

利用牛顿方法求解非线性方程(MatLab)

一、算法原理 1. 牛顿方法的算法原理 牛顿方法(Newton’s Method),也称为牛顿-拉弗森方法,是一种用于数值求解非线性方程的迭代方法。其基本思想是通过不断迭代来逼近方程的根,具体原理如下: 输入&#…