Domain-Driven Design (DDD) teaches us how to make good software, but it also teaches us how to use the object-oriented technology. Good software should be based on domain-driven design. However, it is difficult to adopt DDD in the software development process. Even experienced developers will have a hard time finding the right way to implement DDD. In other words, DDD gives us a whole new perspective on designing software, but it also leaves developers with a big puzzle: How do you put domain-driven design into practice?

In all probability, you've read Eric Evans's Domain-Driven Design many times, but still don't know how to put domain-driven design into practice. In other words, the book is undeniably great, but programmers always want to see some practical examples that can actually put DDD on the ground to guide their daily development. Thus, nearly 10 years after the publication of Eric Evans's Domain-Driven Design, Vaughn Vernon's Implementing Domain-Driven Design provides comprehensive answers.

DDD can be divided into strategic design and tactical design. The strategic design mainly "looks down" our software system from the top, helps us to accurately divide the domains and deal with the relationship between various domains; While the tactical design teaches us how to implement DDD specifically in terms of technical implementation. Implementing Domain-Driven Design provides a detailed discussion on how to implement DDD at both strategic and tactical levels, including a number of practices, design guidelines, and compromised discussions on a number of other issues.

The book is divided into 14 chapters. In the DDD's strategic section, it explains the domains, bounded context, context mapping, architectures, etc.; the tactical section includes entities, value objects, domain services, domain events, aggregations, resource libraries, and more. In addition, a fictitious case study is used throughout the book, which is very useful for illustrating DDD implementations. In short, this book builds a bridge between the thought and implementation of DDD, and is a must-read book for software architects and programmers to advance.

Covered Topics

  • 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

Table Of Contents

  • Chapter 1: Getting Started with DDD
  • Chapter 2: Domains, Subdomains, and Bounded Contexts
  • Chapter 3: Context Maps
  • Chapter 4: Architecture
  • Chapter 5: Entities
  • Chapter 6: Value Objects
  • Chapter 7: Services
  • Chapter 8: Domain Events
  • Chapter 9: Modules
  • Chapter 10: Aggregates
  • Chapter 11: Factories
  • Chapter 12: Repositories
  • Chapter 13: Integrating Bounded Contexts
  • Chapter 14: Application
  • Appendix A: Aggregates and Event Sourcing: A+ES

Download URLs

Format Download Size
PDF 4.44 MB
(Homepage | InformIT)