A Pragmatic View of Domain-Driven Design
Domain-driven design (DDD) is a set of software design principles that are widely used in modern enterprise applications. They were bundled and made popular in 2003 by Eric Evans in his book Domain-Driven Design.
You might be wondering how this is related to test-driven development (TDD). Is it because it is a similar-sounding acronym? The reality is that TDD and DDD work together where TDD covers the design from the client’s perspective and the quality, while DDD complements the rest of the design. You will hear the two terms used together in a conversation and in job specifications, and the reason for this will be clear by the end of Part 2, Building an Application with TDD.
This chapter is meant to be a primer on DDD, so you will have the foundation required to build a complete application using a combination of TDD and DDD.
DDD is a technical and a philosophical topic. Given the pragmatism of this book and the length of...