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

news2024/9/21 11:03:22

目录

前言

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.coloradmin.cn/o/1431536.html

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

相关文章

缓存的概念

文章目录 一、系统缓存buffer与cachecache 的保存位置cache 的特性 二、用户层缓存DNS缓存 三、浏览器缓存过期机制最后修改时间Etag标记过期时间 expires混合使用和缓存刷新缓存刷新 cookie和session 四、CDN缓存什么是CDN用户请求CDN流程利用 302 实现转发请求重定向至最优服…

C语言实现跳表(附源码)

最近在刷一些链表的题目,在leetcode上有一道设计跳表的题目,也是通过查阅各种资料,自己实现出来,感觉这是种很神奇的数据结构。 一.简介 跳表与红黑树,AVL树等,都是一种有序集合,那既然是有序…

Maven打包常用插件介绍与问题分析

文章目录 简介创建测试项目maven-jar-plugin打可执行包依赖在哪里? maven-assembly-pluginmaven-shade-pluginspring-boot-maven-pluginmvn打包一个比较坑的问题打包问题排查 简介 很多时候我们不太会关心maven是如何打包的,因为maven的确做得很棒&…

4个最佳的免费全磁盘加密程序,总有一款适合你

全磁盘加密软件加密整个驱动器,而不仅仅是几个文件或文件夹。加密计算机的驱动器可以使你的私人数据免受窥探,即使你的计算机被盗。 你也不仅仅局限于一个硬盘驱动器。闪存驱动器和外部硬盘驱动器等外部设备也可以通过磁盘加密软件进行加密。 注意:Windows和macOS都集成了…

3. 状态管理 vuex 状态管理库

目录 3.1 vuex 介绍 3.2 使用方式 3.1 vuex 介绍 vuex 是一个专为 Vue.js 应用程序开发的状态管理库 vuex 可以在多个组件之间共享数据,并且共享的数据是响应式的,即数据的变更能及时渲染到模板 vuex 采用集中式存储管理所有组件的状态 每一个 Vuex…

【Android】RxJava系列01-基本概述和基本用法

少年啊,要永远相信美好的事情即将发生 【Android】RxJava系列01-基本概述和基本用法 1.RxJava的概述2.RxJava的作用3.观察者和被观察者4.背压5.RxJava的基本用法步骤一,创建Observer(观察者)步骤二,创建Observable&…

【C++】类和对象之运算符重载(三)

前言:在前面我们知道在类和对象中有六个默认成员函数,并学习了其中三个构造函数、析构函数、拷贝构造函数,今天我们将进一步的学习.赋值运算符重载。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质…

UnityShader 边缘光效果

效果: 代码实现: Shader "MyShader/Sim" {Properties{_MainTex("主贴图",2D)"white"{}_MainColor("主贴图颜色",color)(1,1,1,1)_InnerSimPower("内描边强度",Range(-1.0,3.0))0.0_InnerSimColor(&…

基于springboot篮球竞赛预约平台源码和论文

随着信息化时代的到来,管理系统都趋向于智能化、系统化,篮球竞赛预约平台也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而…

day2.4

D选项是不正确的。如果一个类没有定义默认构造函数,但该类的所有数据成员都有默认值,那么编译器会自动生成一个默认构造函数。然而,如果类中有某些数据成员没有默认值或者需要进行特殊的初始化,那么就需要用户自己定义一个默认构造…

小程序<swiper/>组件详解及使用指南

目录 引言微信小程序的重要性Swiper组件的角色与功能简介Swiper组件基础Swiper组件的定义与使用场景如何在微信小程序中引入Swiper组件Swiper组件的基本结构与属性Swiper组件的高级应用自定义Swiper指示点样式实现Swiper的动态效果(如自动播放、循环播放)说明引言 微信小程序…

【云原生运维问题记录】kubesphere登录不跳转问题

文章目录 现象问题排查 结论先行:kubesphere-system名称空间下reids宕机重启,会判断是否通过registry-proxy重新拉取镜像,该镜像原本是通过阿里云上拉取,代理上没有出现超时情况,导致失败。解决方案:删除re…

EasyX图形库学习(二、文字输出)

目录 一、文字绘制函数 字体属性结构体:logfont 文字输出 outtextxy 在指定位置输出字符串。 ​编辑 但如果直接使用,可能有以下报错: 三种解决方案: 将一个int类型的分数,输出到图形界面上 如果直接使用: 会把score输入进去根据A…

ES集群维护笔记

集群版本说明:es 7.5.1 REST接口 查看所有_cat接口 curl http://127.0.0.1:9200/_cat?v查看master节点 curl http://127.0.0.1:9200/_cat/master?v查看集群健康状态 curl http://127.0.0.1:9200/_cat/health?v查看节点状态 curl http://127.0.0.1:9200/_ca…

【测试运维】web自动化全知识点笔记第1篇:什么是Web自动化测试(已分享,附代码)

本系列文章md笔记(已分享)主要讨论Web自动化测试相关知识。了解什么是自动化,理解什么是自动化测试以及为什么要使用自动化测试。具体包含:WebDriver的基本操作,WebDriver的鼠标、键盘操作,下拉选择框、警告…

iview DatePicker 日期选择组件在弹窗中使用transfer,导致选择日期弹窗会关闭的问题

背景:在弹窗里面使用日期选择组件,选择组件的面板被弹窗遮挡了部分,所以需要使用transfer属性,但是使用之后组件面板插入body中了,面板的事件会导致弹窗关闭。 解决方案: 添加上transfer属性和指定的date-…

STL篇三:list

文章目录 前言1.list的介绍和使用1.1 list的介绍1.2 list的使用1.3 list的迭代器的失效 2.list的模拟实现2.1 结点的封装2.2 迭代器的封装2.2.1 正向迭代器2.2.2 反向迭代器 2.3 list功能的实现2.3.1 迭代器的实例化及begin()、end() 2.3.2 构造函数2.3.3 赋值运算符重载2.3.4 …

169. Majority Element

Given an array nums of size n, return the majority element. The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array. Example 1: Input: nums [3,2,3] Output: 3 Exampl…

【开源】基于JAVA+Vue+SpringBoot的河南软件客服系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

学习ArtTs -- 初见ArkTs

作者:Uncle_Tom 原文链接:学习ArtTs -- 初见ArkTs-云社区-华为云 1. 前言 需要静态分析去检查一个语言,必须对这个语言有深刻的认识,才能有效的对这个语言进行有效的检查。 我常说:“作为一个程序分析员需要比一般的程序员考虑…