搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
领域驱动设计精粹
0.00     定价 ¥ 65.00
图书来源: 浙江图书馆(由JD配书)
此书还可采购11本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787121348525
  • 作      者:
    [美]Vaughn,Vernon(沃恩弗农)
  • 译      者:
    覃宇 笪磊
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2018-09-01
收藏
产品特色
编辑推荐

本书让枯燥的DDD概念栩栩如生。无论你是软件开发者、架构师、分析师、咨询师还是软件客户,本书都能助你真正地理解DDD,并从它的美好前景中获益。本书并没有用大量细枝末节的知识点来淹没你,而是聚焦于那些为了寻求答案所必需的内容。本书内容简练易懂并具备可操作性。好评如潮的《实现领域驱动设计》作者Vaughn Vernon,将二十多年来在真实项目场景中运用DDD原则的经验进行总结,没有谁比他更适合阐明这其中的庞杂和微妙之处。

Vernon将指导你掌握每一项为了构建更好的软件所必须的核心DDD技术。你将学会如何使用强大的限界上下文模式来分离领域模型、如何在明确的边界内发展通用语言,以及如何帮助领域专家和开发者紧密协作来创造这种语言。他还展示了如何借助子域来处理遗留系统,以及如何利用各种团队关系和技术机制来集成多个限界上下文。

本书内容包括:

√ DDD可以为你或者你的组织做些什么,以及它为什么如此重要

√ DDD战略设计的基石:限界上下文和通用语言

√ 使用子域进行战略设计

√ 上下文映射:帮助团队更具策略性地进行协作并集成软件

√ 使用聚合和领域事件进行战术设计

√ 使用项目加速和管理工具来建立并维护团队的节奏


展开
作者简介

Vaughn Vernon是一位经验丰富的软件工匠,也是追求简化软件设计和实现的思想领袖。他是畅销书《实现领域驱动设计》和《响应式架构:消息模式Actor实现与Scala、Akka应用集成》的作者,这些书也同样由Addison-Wesley出版发行。他在全球面向数百位开发者教授过IDDD课程,并经常在行业会议上发表演讲。他对分布式计算、消息机制,特别是Actor模型非常有兴趣。Vaughn擅长领域驱动设计和使用Scala、Akka实现DDD方面的咨询。你可以通过www.VaughnVernon.co查看他的研究成果,或者关注他的Twitter: @VaughnVernon。

 

译者简介

覃宇,ThoughtWorks 高级咨询师,10余年移动应用开发经验,Android 技术专家,曾为AOSP贡献过测试用例;目前专注于移动应用的架构设计、自动化测试以及持续交付。译有《Kotlin实战》《Severless:无服务架构与AWS Lambda》等书。


展开
内容介绍

领域驱动设计(DDD)是时下软件设计领域中的热门话题,它通过指导我们构建领域模型,来表达丰富的软件功能需求,并由此实现可以满足用户真正需要的软件。然而在实践过程中,由于不同的角色对于DDD的核心概念和主要工具的理解不同,常常会造成协作上的不一致。为了帮助和指导面向对象的开发人员、系统分析人员和设计人员更加合理地组织工作,各有侧重、有条不紊地进行复杂系统的开发,并有效地建立丰富而实用的领域模型,《领域驱动设计精粹》的作者Vaughn Vernon将自己近年来在领域驱动设计领域的理解进一步提炼,并将本书以精粹的形式呈现给广大的读者。

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

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

展开
精彩书摘

译者序

2003年,Eric Evans的《领域驱动设计》出版,第一次总结了这种软件设计和建模方法。这种方法让团队在质疑中发展出对复杂问题的统一认识,再利用战略设计和战术设计的各种手段,如同庖丁解牛般地分解并映射成各种构造块,最后信手拈来地运用各种设计模式将这些构造块一一化解。领域驱动设计在国外的技术社区一直是受到热捧、不断演化的软件设计方法。在Eric的著作面世十年之后,另一位DDD社区的领军人物Vaughn Vernon撰写了《实现领域驱动设计》。在这本著作中,Vaughn用一个连贯完整的实例,将领域驱动设计的所有概念和模式串连在一起,并将这些内容落地到了实例的代码之中。另外,他还在这部著作中总结了这十年来DDD社区涌现的一些新的架构风格和模式,如事件溯源和CQRS、REST风格的架构、事件驱动的架构、六边形架构,等等。

但这十几年间,在国内技术社区,领域驱动设计却像被遗忘在角落的宝藏等待着人们去发掘。当越来越复杂的业务场景开始频繁涌现,当工程实践和基础设施发展成熟,我们重新将视线汇聚在如何达成有效设计、将复杂的业务分而治之,我们发现这种设计方法仿佛早就看透了一切。当宝藏上的灰尘被拂去,领域驱动设计再次发出璀璨夺目的光芒,为我们指明应对软件系统复杂性的前进方向。

重新焕发青春活力的领域驱动设计得到了许多新的团队和架构师的青睐。他们首先就会去阅读这两部略微晦涩的著作,期望能快速地学习和掌握这种方法,但很快就会发现这并不轻松。首先,这两部著作要求读者具备一定的软件开发技术背景。在领域驱动设计的实践中,业务领域的专家在团队中扮演关键角色,他们往往没有软件开发的技术背景。两位软件巨匠在著作中详细阐述技术概念和实现代码时并没有照顾他们的感受。其次,这两部著作缺少对实际项目建模过程的描写。我们读到的内容多是概念的阐述和与之对应的实例及代码,对于建模实操的过程和工具着墨不多。而这些Magic Move却是很多团队实施领域驱动设计时迫切需要指导的关键步骤。最后,两部著作的内容包罗万象,读者容易被繁杂的知识淹没。两部著作中的一些概念和模式(如值对象、实体、工厂和仓储)早已深入人心。而另一部分模式和架构(如事件溯源和CQRS)则要求架构经验尚浅的读者通过项目实践或扩展阅读才能深入理解。

作为《实现领域驱动设计》一书的作者,Vaughn也意识到了这些问题,因此编写了这本“精粹版”。他将领域驱动设计的知识进行了提炼,保留了子域、限界上下文、上下文映射、聚合、领域事件这些核心概念,分别用一个章节进行了阐述。在最后一章,作者将他过去在一些团队中实践领域驱动设计时行之有效的具体操作方法(如风靡DDD社区的事件风暴工作坊)和工具进行了总结。本书的内容更侧重于高层次的战略设计,关于战术设计的内容偏少,尤其是代码在内容中的比重极低,完全不影响非技术背景的读者阅读。如果你想开始在团队中尝试领域驱动设计,对于团队(包括业务领域的专家)来说,本书的内容可以作为指导手册,让他们快速地进入状态,达到可以参与事件风暴工作坊的要求。我们建议读者们在阅读本书之后亲自组织并实施一次事件风暴工作坊,这是作者推荐的融合视觉、听觉和触觉三种学习方式的“知识获取”实践,是威力无穷的领域建模形式。在开发团队完成建模并最终需要落实到代码时,读者可以将本书作为“武林秘籍”的目录,结合前两部著作和本书参考文献中引用的其他专著一起阅读。

本书中,作者毫不掩饰地表达了对一些架构模式和具体实践的偏好。这些特色鲜明的观点之中,有些符合社区的普遍认知,如事件驱动的响应式架构、单元测试、事件风暴;有些却是对争议性话题的个人理解,如作者对于建模设计的工作量估算的看法。我们要牢记一点,没有“银弹”可以精确地匹配我们的产品和团队,或者完美地解决我们要面对的问题。任何工具和实践都有约束条件。读者们在采用这些工具和实践时,不妨仔细思考作者运用它们的上下文及其体现出的原则,结合自己的实际情况对工具和实践进行持续改进,避免出现教条主义错误。

我和同事笪磊结对完成了对本书的翻译。我们一人擅长技术,一人则擅长管理,翻译的过程也是我们默契配合、实践“发展通用语言”的“知识获取”过程。我们也将个人对关键内容的理解补充记录在译注中。我们力求翻译内容的准确和译注的质量,但受限于个人经验和知识水平,难免出现偏差甚至错误,还请各位读者斧正。

本书翻译工作于2017年末启动,两个月后初稿完成并进入了审校阶段。这期间正值农历戊戌年春节,我们的投入离不开家人们的理解和支持,谢谢她们。我们还要感谢提出宝贵意见的审校者:肖然、刘传湘、王威、朱傲、黄雨清、王林波。他们过去几年都活跃在国内DDD社区,也帮助过许多团队运用领域驱动设计方法和事件风暴工作坊来实施架构设计和系统改造。他们过硬的理论知识和丰富的实践经验让本书的翻译增色不少。最后,我们还要感谢专业和严谨的编辑张春雨和刘佳禾,本书也凝聚着你们的心血。

覃宇

2018年7月


展开
目录

第1章  DDD对我而言  1

DDD很难掌握吗  2

优秀设计、糟糕设计和有效设计  3

战略设计  8

战术设计  9

学习过程与知识提炼  10

让我们开始吧!  11

第2章  运用限界上下文与通用语言进行战略设计  13

领域专家和业务驱动  20

案例分析  24

战略设计是必要的根基  28

在质疑中统一  32

发展通用语言  38

应用场景  42

如何持续  45

架构  46

本章小结  50

第3章  运用子域进行战略设计  51

什么是子域  52

子域类型  53

应对复杂性  54

本章小结  56

第4章  运用上下文映射进行战略设计  57

映射的种类  60

合作关系  60

共享内核  61

客户—供应商  62

跟随者  63

防腐层  64

开放主机服务  65

已发布语言  65

各行其道  66

大泥球  67

善用上下文映射  69

基于SOAP的RPC  70

RESTful HTTP  72

消息机制  74

上下文映射示例  79

本章小结  83

第5章  运用聚合进行战术设计  85

为什么使用它  86

聚合的经验法则  91

规则一:在聚合边界内保护业务规则不变性  92

规则二:聚合要设计得小巧  93

规则三:只能通过标识符引用其他聚合  95

规则四:利用最终一致性更新其他聚合  96

建立聚合模型  99

慎重选择抽象级别  104

大小适中的聚合  106

可测试的单元  108

本章小结  108

第6章  运用领域事件进行战术设计  111

设计、实现并运用领域事件  113

事件溯源  119

本章小结  121

第7章  加速和管理工具  123

事件风暴  124

其他工具  134

在敏捷项目中管理DDD  135

运用SWOT分析法  137

建模Spike和建模债务  139

任务识别与工作量估算  140

限制建模时间  143

如何实施  144

和领域专家打交道  145

本章小结  147

参考文献  148

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证