You are previewing Domain-Driven Design Distilled.
O'Reilly logo
Domain-Driven Design Distilled

Book Description

Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it. Now, for the first time, there’s an accessible guide to the basics of DDD: What it is, what problems it solves, how it works, and how to quickly gain value from it.

Concise, readable, and actionable, Domain-Driven Design Distilled never buries you in detail–it focuses on what you need to know to get results. Vaughn Vernon, author of the best-selling Implementing Domain-Driven Design, draws on his twenty years of experience applying DDD principles to real-world situations. He is uniquely well-qualified to demystify its complexities, illuminate its subtleties, and help you solve the problems you might encounter.

Vernon guides you through each core DDD technique for building better software. You’ll learn how to segregate domain models using the powerful Bounded Contexts pattern, to develop a Ubiquitous Language within an explicitly bounded context, and to help domain experts and developers work together to create that language. Vernon shows how to use Subdomains to handle legacy systems and to integrate multiple Bounded Contexts to define both team relationships and technical mechanisms.

Domain-Driven Design Distilled brings DDD to life. Whether you’re a developer, architect, analyst, consultant, or customer, Vernon helps you truly understand it so you can benefit from its remarkable power.

Coverage includes

  • What DDD can do for you and your organization–and why it’s so important

  • The cornerstones of strategic design with DDD: Bounded Contexts and Ubiquitous Language

  • Strategic design with Subdomains

  • Context Mapping: helping teams work together and integrate software more strategically

  • Tactical design with Aggregates and Domain Events

  • Using project acceleration and management tools to establish and maintain team cadence

  • Table of Contents

    1. About This E-Book
    2. Title Page
    3. Copyright Page
    4. Dedication Page
    5. Contents
    6. Preface
      1. Who Is This Book For?
      2. What This Book Covers
      3. Conventions
    7. Acknowledgments
    8. About the Author
    9. Chapter 1. DDD for Me
      1. Will DDD Hurt?
      2. Good, Bad, and Effective Design
      3. Strategic Design
      4. Tactical Design
      5. The Learning Process and Refining Knowledge
      6. Let’s Get Started!
    10. Chapter 2. Strategic Design with Bounded Contexts and the Ubiquitous Language
      1. Domain Experts and Business Drivers
      2. Case Study
      3. Fundamental Strategic Design Needed
      4. Challenge and Unify
      5. Developing a Ubiquitous Language
        1. Putting Scenarios to Work
        2. What about the Long Haul?
      6. Architecture
      7. Summary
    11. Chapter 3. Strategic Design with Subdomains
      1. What Is a Subdomain?
      2. Types of Subdomains
      3. Dealing with Complexity
      4. Summary
    12. Chapter 4. Strategic Design with Context Mapping
      1. Kinds of Mappings
        1. Partnership
        2. Shared Kernel
        3. Customer-Supplier
        4. Conformist
        5. Anticorruption Layer
        6. Open Host Service
        7. Published Language
        8. Separate Ways
        9. Big Ball of Mud
      2. Making Good Use of Context Mapping
        1. RPC with SOAP
        2. RESTful HTTP
        3. Messaging
      3. An Example in Context Mapping
      4. Summary
    13. Chapter 5. Tactical Design with Aggregates
      1. Why Used
      2. Aggregate Rules of Thumb
        1. Rule 1: Protect Business Invariants inside Aggregate Boundaries
        2. Rule 2: Design Small Aggregates
        3. Rule 3: Reference Other Aggregates by Identity Only
        4. Rule 4: Update Other Aggregates Using Eventual Consistency
      3. Modeling Aggregates
        1. Choose Your Abstractions Carefully
        2. Right-Sizing Aggregates
        3. Testable Units
      4. Summary
    14. Chapter 6. Tactical Design with Domain Events
      1. Designing, Implementing, and Using Domain Events
      2. Event Sourcing
      3. Summary
    15. Chapter 7. Acceleration and Management Tools
      1. Event Storming
        1. Other Tools
      2. Managing DDD on an Agile Project
        1. First Things First
        2. Use SWOT Analysis
        3. Modeling Spikes and Modeling Debt
        4. Identifying Tasks and Estimating Effort
      3. Timeboxed Modeling
        1. How to Implement
        2. Interacting with Domain Experts
      4. Summary
    16. References
    17. Index
    18. Code Snippets