Implementing Domain-Driven Design

Implementing Domain-Driven Design pdf epub mobi txt 電子書 下載2025

出版者:Addison-Wesley Professional
作者:Vaughn Vernon
出品人:
頁數:656
译者:
出版時間:2013-2-16
價格:USD 57.99
裝幀:Hardcover
isbn號碼:9780321834577
叢書系列:
圖書標籤:
  • 領域驅動設計
  • DDD
  • 架構
  • 計算機
  • 軟件工程
  • 編程
  • 基礎理論
  • programming
  • Domain-Driven Design
  • Software Architecture
  • Design Patterns
  • Clean Code
  • OOP
  • Agile Development
  • Evolutionary Design
  • Business Modeling
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

"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。

圖書目錄

Foreword xvii
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
· · · · · · (收起)

讀後感

評分

我一直没做过web开发,也没接触过那些政务、信息管理的业务流程,一直不是很理解CRUD的难处与痛苦。所以看了一大半发现很多概念都太难理解,也不理解为啥很多人极其推崇他解决问题的模式。当然本书提到的概念我也是第一次才听说,最实用的就是领域专家一定要参与,以及...

評分

写的有点啰嗦;书四星,翻译减掉2星,友情加1星... 译者4个月业余时间翻译了500多页的书,但是,这个翻译质量看着有点...比如“xxx的名字长度小于所要求的。” 的啥?event sourcing,事件溯源,多常见的概念,书里居然翻译成“事件源”,意思完全不一样了吧...真是google翻译...  

評分

解决了很多我在看DDD原著中遇到的困惑。。 推荐推荐推荐推荐 推荐推荐推荐推荐 推荐推荐推荐推荐 推荐推荐推荐推荐 推荐推荐推荐推荐 推荐推荐推荐推荐 推荐推荐推荐推荐 推荐推荐推荐推荐  

評分

infoq上书评出来了: http://www.infoq.com/cn/articles/implementing-domain-driven-design 作者是ThoughtWorks的张逸  

評分

写的有点啰嗦;书四星,翻译减掉2星,友情加1星... 译者4个月业余时间翻译了500多页的书,但是,这个翻译质量看着有点...比如“xxx的名字长度小于所要求的。” 的啥?event sourcing,事件溯源,多常见的概念,书里居然翻译成“事件源”,意思完全不一样了吧...真是google翻译...  

用戶評價

评分

設計和分析的能力非一朝一夕,值得細細品味

评分

韆萬彆讀翻譯本, 垃圾, 雖然中譯本我都讀瞭不止十遍瞭 lol; 說到內容, 光是 GoF 信手拈來這功底就不是那些打 3- 星的人能夠望其相背的, 更彆說這人是 Martin Fowler 的迷弟, DI 什麼的現代架構理解得非常深刻; 每一章都值得讀個二十遍, 細節太多瞭, 比如 Double Dispatch 作者一筆帶過, 但是大傢真的搞得清嗎?

评分

從repository那一章開始後麵就不太實用瞭。要是作者能多用點比喻就好瞭,這種幫助構建thinking model的書真的好難吸收。我見到最好理解的一個比喻(來源網上)是把bounded context比喻成公司裏的一個部門,還記得看到它很多相關的概念:domain, context map等等都豁然開朗。

评分

看瞭14%,實在看不下去,不知所雲

评分

設計和分析的能力非一朝一夕,值得細細品味

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有