Domain Driven Design by Eric Evans

Domain Driven Design is a set of concepts and paradigms invented by Eric Evans, and converted into a book. I own a digital copy of it, and I find it one of the most useful paradigms for development.

The basic idea is that developers are supposed to understand the business language and the ideas behind it, and then translate them into the code that will solve the business problems that need solving. It also gives sound advice on how to split the domains, how to identify the actors of the domain, what a repository is, how the meaning of identity and mutability affects the implementation.

The reason I find it so useful is because in the rise of TDD it provide a decent alternative for it (although both are compatible and can be used simultaneously). The contract is not with the tests that might or might not reflect the needs of the project (how many times have you seen tests that target implementation??). The contract is with the language of the organisation/domain itself. As soon as the code reflects the domain, the code will be as correct as it can be.

Domain Driven design cover