四年了,《解构领域驱动设计》终于可以在异步社区的官方网站上预购了!这意味着,我的著作终于出版了!有没有普天同庆的赶脚?总之,当我收到这一消息后,长长地吁了一口气……终于,终于,四年了,真不容易啊!
许多次,我在给别人介绍这本著作时,总有人问我哪里可以买到,而我则尴尬地回答:嗯,这个,这个,还没有出版呢。许多次,读者圈的朋友在问这本书多久出版时,我从2020年承诺年底出版,然后推迟到4月,然后推迟到6月,最后推迟到7月,进度的delay已经让人产生抱怨了!而在许多年前,我总是说我的第一本书《软件设计精要与模式》,言外之意,我还有第二本书,可是自从2007年出版我的第一本书,到2009年出版该书的第二版之后,我的第二本书终于在14年后诞生了。
一些信息可以侧面证明本书写作的不容易。
本书内容首先诞生于我在GitChat上发布的领域驱动设计课程,该课程分为《战略篇》与《战术篇》,战略篇一共34章,15.5万字;战术篇一共71章,35.1万字。合计105章,50.6余万字。发布战术篇的最后一章是在2020年1月21日,完成本书初稿是在2020年11月24日。
个人认为,领域驱动设计课程的内容已经足够完整了,对于课程内容,几乎没有差评(至少我没有看到);但我仍嫌不足,在完成该课程后,又对内容进行了大刀阔斧地修改与调整,彻底改变了从战略到战术这条线的章节安排,引入了我总结的领域驱动设计统一过程,增加了三章与需求分析有关的内容,完善了战略篇,将其进化为架构映射的内容,丰富了限界上下文的定义,引入了菱形对称架构与领域驱动架构风格,完善了战术篇,将其进化为领域建模的内容,使得领域建模的过程与方法更加完整,并具备可操作性。同时,也删减了该课程中部分与领域驱动设计关系不大的内容,使得内容变得更精简也更有条理,最后成书包括4篇推荐序、1篇前言、20章正文组成五个篇章,以及4章附录,总字数(不包括空白、空行与标点符号)约43万字。
虽然本书初稿完成在2020年11月24日,然而在交稿后,又几度批阅删改,甚至在2021年1月基本定稿后,因为字数和章节的不合理性,于2月4日向出版社提出修改要求,为此牺牲了春节的休假时间,调整内容包括:
- 去掉了原稿的第16章、第21章
- 将原稿的第7章、第14章和第22章合并,并做了大量删减,放到了新稿的第20章,它们合起来是一个完整的案例;
- 将原稿的第17章、第19章和第20章中的一个案例做了合并,并做了少量调整,放到了新稿的第17章;
- 调整了正文和附录的分布,从原书的25章调整为正文20章、附录3章(后在5月份又增加了一章附录)
这一改动几乎等于乾坤大挪移,严重影响了出版进度。编辑需要针对之前基本完成加工的书稿进行重新梳理,极大地拖慢了出版进度,同时,因为图片字体版权问题,又对本书所有图片进行了再度编辑和调整,直到4月22日最终定稿。确定后的书稿先后经历出版社的一审、二审、三审,再经我个人审校后,编辑做一校、二校、三校,种种工作,不一而足,最终等到书稿付梓印刷,并在今日开启了本书的预售工作。
内容简介
本书全面阐释了领域驱动设计的知识体系,内容覆盖领域驱动设计的主要模式与主流方法,并在此基础上提出领域驱动设计统一过程,将整个软件构建过程划分为全局分析、架构映射和领域建模3个阶段。除给出诸多案例阐释领域驱动设计过程中的方法与模式之外,本书还通过一个真实而完整的案例全面展现了如何进行领域驱动设计统一过程的实施和落地。为了更好地运用领域驱动设计统一过程,本书还开创性地引入了业务服务、菱形对称架构、领域驱动架构、服务驱动设计等方法与模式,总结了领域驱动设计参考过程模型与能力评估模型。本书提出的一整套方法体系已在多个项目得到推广和落地。
本书适合希望体会软件架构本质、提高软件架构能力的软件架构师,希望提高领域建模能力、打磨软件设计能力的开发人员,希望掌握业务分析与建模方法的业务分析人员,希望学习领域驱动设计并将该方法运用到项目中的软件从业人员阅读参考。
目录
本书目录为:
- 推荐序四篇
- 前言
- 第一篇 开篇
- 第1章 软件复杂度剖析
- 第2章 领域驱动设计概览
- 第3章 领域驱动设计统一过程
- 第二篇 全局分析
- 第4章 问题空间探索
- 第5章 价值需求分析
- 第6章 业务需求分析
- 第三篇 架构映射
- 第7章 同构系统
- 第8章 系统上下文
- 第9章 限界上下文
- 第10章 上下文映射
- 第11章 服务契约设计
- 第12章 领域驱动架构
- 第四篇 领域建模
- 第13章 模型驱动设计
- 第14章 领域分析建模
- 第15章 领域模型设计要素
- 第16章 领域设计建模
- 第17章 领域实现建模
- 第五篇 融合
- 第18章 领域驱动设计的战略考量
- 第19章 领域驱动设计的战术考量
- 第20章 领域驱动设计体系
- 附录
- 附录A 领域建模范式
- 附录B 事件驱动模型
- 附录C 领域驱动设计魔方
- 附录D 领域驱动设计统一过程交付物
- 参考文献