BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

Eric Evans on why Domain-Driven Design Matters Today

by Floyd Marinescu on Dec 21, 2006 |
Domain Driven Design is a vision and approach for dealing with highly complex domains that is based on making the domain itself the main focus of the project, and maintaining a software model that reflects a deep understanding of the domain. The vision was brought to the world by Eric Evans in his book "Domain Driven Design". Eric's work was based on 20 years of widely accepted best practices in the object community, as well as Eric's own insights.  Included in the InfoQ minibook Domain-Driven Design Quickly, was an interview with Eric Evans, published separately as an article to get more viewership.

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.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Domain Driven Design - is that something new or just well forgotten? by David Rozenberg

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

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

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).

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

3 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT