出版社: Addison-Wesley Professional
出版年: 2013-2-16
页数: 656
定价: USD 57.99
装帧: Hardcover
ISBN: 9780321834577
内容简介 · · · · · ·
"For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last ...
"For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades." -Randy Stafford, Architect At-Large, Oracle Coherence Product Development "This book is a must-read for anybody looking to put DDD into practice." -Udi Dahan, Founder of NServiceBus Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. Building on Eric Evans' seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples-all applicable to C# developers-and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment. The author takes you far beyond "DDD-lite" approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD's "strategic design patterns" using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals. Coverage includes * Getting started the right way with DDD, so you can rapidly gain value from it* Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based* Appropriately designing and applying Entities-and learning when to use Value Objects instead* Mastering DDD's powerful new Domain Events technique* Designing Repositories for ORM, NoSQL, and other databases
作者简介 · · · · · ·
作者:Vaughn Vernon是一个经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验。他提倡通过创新来简化软件的设计和实现。从20世纪80年代开始,他便开始使用面向对象语言进行编程;在 20世纪 90年代早期,他便在领域建模中应用了领域驱动设计,那时他使用的是Smalltalk语言。他在很多业务领域都有从业经验,包括航空、环境、地理、保险、医学和电信等领域。同时,Vaughn在技术上也取得了很大的成功,包括开发可重用的框架和类库等。他在全球范围之内提供软件咨询和演讲,此外,他还在许多国家教授《实现领域驱动设计》的课程。你可以通过www.VaughnVernon.co访问到他的最新研究成果。他的Twitter:@VaughnVernon。
目录 · · · · · ·
Preface xix
Acknowledgments xxix
About the Author xxxiii
Guide to This Book xxxv
· · · · · · (更多)
Preface xix
Acknowledgments xxix
About the Author xxxiii
Guide to This Book xxxv
Chapter 1: Getting Started with DDD 1
Can I DDD? 2
Why You Should Do DDD 6
How to Do DDD 20
The Business Value of Using DDD 25
The Challenges of Applying DDD 29
Fiction, with Bucketfuls of Reality 38
Wrap-Up 41
Chapter 2: Domains, Subdomains, and Bounded Contexts 43
Big Picture 43
Why Strategic Design Is So Incredibly Essential 53
Real-World Domains and Subdomains 56
Making Sense of Bounded Contexts 62
Sample Contexts 72
Wrap-Up 84
Chapter 3: Context Maps 87
Why Context Maps Are So Essential 87
Wrap-Up 111
Chapter 4: Architecture 113
Interviewing the Successful CIO 114
Layers 119
Hexagonal or Ports and Adapters 125
Service-Oriented 130
Representational State Transfer–REST 133
Command-Query Responsibility Segregation, or CQRS 138
Event-Driven Architecture 147
Data Fabric and Grid-Based Distributed Computing 163
Wrap-Up 168
Chapter 5: Entities 171
Why We Use Entities 171
Unique Identity 173
Discovering Entities and Their Intrinsic Characteristics 191
Wrap-Up 217
Chapter 6: Value Objects 219
Value Characteristics 221
Integrate with Minimalism 232
Standard Types Expressed as Values 234
Testing Value Objects 239
Implementation 243
Persisting Value Objects 248
Wrap-Up 263
Chapter 7: Services 265
What a Domain Service Is (but First, What It Is Not) 267
Make Sure You Need a Service 268
Modeling a Service in the Domain 272
Testing Services 281
Wrap-Up 284
Chapter 8: Domain Events 285
The When and Why of Domain Events 285
Modeling Events 288
Publishing Events from the Domain Model 296
Spreading the News to Remote Bounded Contexts 303
Event Store 307
Architectural Styles for Forwarding Stored Events 312
Implementation 318
Wrap-Up 331
Chapter 9: Modules 333
Designing with Modules 333
Basic Module Naming Conventions 336
Module Naming Conventions for the Model 337
Modules of the Agile Project Management Context 340
Modules in Other Layers 343
Module before Bounded Context 344
Wrap-Up 345
Chapter 10: Aggregates 347
Using Aggregates in the Scrum Core Domain 348
Rule: Model True Invariants in Consistency Boundaries 353
Rule: Design Small Aggregates 355
Rule: Reference Other Aggregates by Identity 359
Rule: Use Eventual Consistency Outside the Boundary 364
Reasons to Break the Rules 367
Gaining Insight through Discovery 370
Implementation 380
Wrap-Up 388
Chapter 11: Factories 389
Factories in the Domain Model 389
Factory Method on Aggregate Root 391
Factory on Service 397
Wrap-Up 400
Chapter 12: Repositories 401
Collection-Oriented Repositories 402
Persistence-Oriented Repositories 418
Additional Behavior 430
Managing Transactions 432
Type Hierarchies 437
Repository versus Data Access Object 440
Testing Repositories 441
Wrap-Up 448
Chapter 13: Integrating Bounded Contexts 449
Integration Basics 450
Integration Using RESTful Resources 458
Integration Using Messaging 469
Wrap-Up 508
Chapter 14: Application 509
User Interface 512
Application Services 521
Composing Multiple Bounded Contexts 531
Infrastructure 532
Enterprise Component Containers 534
Wrap-Up 537
Appendix A: Aggregates and Event Sourcing: A+ES 539
Inside an Application Service 541
Command Handlers 549
Lambda Syntax 553
Concurrency Control 554
Structural Freedom with A+ES 558
Performance 558
Implementing an Event Store 561
Relational Persistence 565
BLOB Persistence 568
Focused Aggregates 569
Read Model Projections 570
Use with Aggregate Design 573
Events Enrichment 573
Supporting Tools and Patterns 576
Contract Generation 580
Unit Testing and Specifications 582
Event Sourcing in Functional Languages 583
Bibliography 585
Index 589
· · · · · · (收起)
原文摘录 · · · · · ·
喜欢读"Implementing Domain-Driven Design"的人也喜欢 · · · · · ·
Implementing Domain-Driven Design的书评 · · · · · · ( 全部 10 条 )
更推荐《Patterns, Principles, and Practices of Domain-Driven Design》
> 更多书评 10篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部3 )
-
电子工业出版社 (2014)8.4分 403人读过
-
电子工业出版社 (2016)暂无评分 3人读过
以下书单推荐 · · · · · · ( 全部 )
- Microservices (juvenxu)
- Morgan Book 2015 (hbjerry)
- 数字化抓手----EA/企业架构生命周期管理 (小毛叔)
- Become A Software Architect (English) (GAbLvXBuoZG3)
- Computer Science (MIAO)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于Implementing Domain-Driven Design的评论:
feed: rss 2.0
1 有用 robi 2014-02-18 00:34:29
非常不错,比Evans那本更接地气,特别在一些细节方面读后感觉明朗了些,ps:关于event的说明也是Evans那本没大幅描写的
0 有用 杜魚 2013-12-18 07:03:48
很好的一本将DDD落地的书籍。书中给出了非常具有指导意义的实战案例,并且讨论了如今最具前沿技术的DDD领域的内容。
0 有用 Teddy’s Ruby 2014-10-25 23:15:15
设计和分析的能力非一朝一夕,值得细细品味
0 有用 et 2023-02-12 12:15:09 浙江
值得把中英文版本都看看
0 有用 补天手 2023-02-06 10:04:25 澳大利亚
行文晦涩
0 有用 et 2023-02-12 12:15:09 浙江
值得把中英文版本都看看
0 有用 补天手 2023-02-06 10:04:25 澳大利亚
行文晦涩
0 有用 顾知行 2021-02-12 16:00:39
跨时两年,终于读完。有挺多启发。因为时间过久,不时会有前读后忘。😂 莫名其妙的牛仔笑话。
0 有用 不知所云的云 2019-12-12 05:42:03
从repository那一章开始后面就不太实用了。要是作者能多用点比喻就好了,这种帮助构建thinking model的书真的好难吸收。我见到最好理解的一个比喻(来源网上)是把bounded context比喻成公司里的一个部门,还记得看到它很多相关的概念:domain, context map等等都豁然开朗。
0 有用 卐Binwei卐 2017-01-07 20:25:51
看了14%,实在看不下去,不知所云