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
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
以下为对购买帮助不大的评价