Read Eric Evans on why DDD Matters Today.
In the interview, Eric Evans puts DDD into modern context and explains why DDD is relevant today, how DDD fits into today's development platforms (Java, .NET, etc), and what's been new in the DDD world since 2003.
At the recent Spring Experience conference, InfoQ did a video interview with Eric which will appear on InfoQ in the coming months. One of the questions answered was what are the minimal practices required for one to say they are doing DDD? Eric responded that the two main ones are using the ubiquitous language, and also the bounded context pattern.
Community comments
Domain Driven Design - is that something new or just well forgotten?
by David Rozenberg,
Re: Domain Driven Design - is that something new or just well forgotten?
by Randy Stafford,
Re: Domain Driven Design - is that something new or just well forgotten?
by David Rozenberg,
Domain Driven Design - is that something new or just well forgotten?
by David Rozenberg,
Your message is awaiting moderation. Thank you for participating in the discussion.
In mid-1980s the AI community was excited about the problem that would allow to determine that minimum set of software applications that would allow to cover all known and posiible future tasks to be solved in the domain. There were theoretical and practical works in this area, but the problem was not solved. The DDD book and the one which is called 'DDD Quickly' actually do not explain the concept, but switch to the 'micro' design patterns that can help with solving minor tasks in the domain, but do not solve the problem of constructing the domain nor extracting it from the domain experts. Collecting domain artifacts does not allow to construct the domain model unless we can prove that we have the full set of the artifacts for the domain. I do think that the book content actually switches the topic and instead of discussing the fundamentals of DDD it spins on some minor details.
Re: Domain Driven Design - is that something new or just well forgotten?
by Randy Stafford,
Your message is awaiting moderation. Thank you for participating in the discussion.
Neither. DDD is an architectural style that is well-remembered and well-practiced by software developers who came from the Smalltalk tradition of the late 1980s and early 1990s, and now is growing in popularity among the Java and .NET generations. Eric has done a wonderful job of putting into words the essence of that timeless object-oriented tradition of how to architect software systems, while at the same time incorporating wisdom gained with experience in areas such as persisting objects and fine-tuning the allocation (factoring) of responsibility.
The DDD philosophy is basically antithetical to the "general problem solver" notion of the AI community you cite - DDD is not reductionist like that. Instead it encourages practioners to implement useful models of specific problem domains, needed for the purpose at hand (e.g. the application under construction). Sure, breakthroughs to valuable generalizations are very gratifying in DDD, but simple elegant craftsmanship is more more the goal than ultimate generalities or frameworks.
Randy Stafford
c2.com/cgi/wiki?RandyStafford
Re: Domain Driven Design - is that something new or just well forgotten?
by David Rozenberg,
Your message is awaiting moderation. Thank you for participating in the discussion.
Randy,
Your comments reminded me some conversation I had long ago with one software developer that presented his software at the exibition. It was obvious that he could easily extend the capabilities and have much more functionality in the application. When we asked about that he answered that he was not paid for that. When the customer would require any extended capabilities the customer would need to pay for that and the developer would create another application.
So, the statement that craftsmanship can help is correct to the extent that you can craft something relatively simple and for very specific needs.
When you are required to provide more capabilities, in that case you will need to redo most of what was developed before (if the original design did not take into account possible extensions).