Home > Store

Implementing Domain-Driven Design, Rough Cuts

Rough Cuts

  • Available to Safari Subscribers
  • About Rough Cuts
  • Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.

Not for Sale

Also available in other formats.

Description

  • Copyright 2013
  • Dimensions: 7" x 9-1/8"
  • Pages: 656
  • Edition: 1st
  • Rough Cuts
  • ISBN-10: 0-13-303993-5
  • ISBN-13: 978-0-13-303993-1

This is the Rough Cut version of the printed book.

“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

Sample Content

Table of Contents

 

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  &

Updates

Submit Errata

More Information