Rafael Córdova
Rafael Córdova

Reputation: 127

when should one actually go for DDD and when it is considered an overkill?

I need some practical Examples/Comparatives about when can/should I use DDD and when can't/shouldn't use DDD?

Upvotes: 1

Views: 1038

Answers (1)

Valentin P.
Valentin P.

Reputation: 1151

Like many other "good" programming practicies DDD cares of achieveing of maximum gain allowing to deal with some difficulties. From my knowledge and experience.

DDD (as one uses most principles and patterns to get most benefits) can be applied when:

  1. It's necessary to support large and complex domain model, containing difficult business rules and lots of classes.
  2. Developers have enough skills in both OOP and DDD. Moreover every person working on project have to understand importance of model, domain knowledge and domain language. Whole team should "move to" deeper understanding of domain and correctly implement this knowledge.
  3. Developers have enough tecnical skills for opportunity to concentrate on how model is implemented.
  4. Project is considered to be long-lived.
  5. Project Owner (or Manager) should also understand additional costs for incorporating of DDD and its benefits.
  6. Project uses OO as main developing paradigm.

DDD is not usefull or cannot be applied to the opposite cases.

In additon DDD may be not usefull

  1. Small and low quality level projects (like prototypes).
  2. Significant "part" of DDD describes patterns and principles applicable to whole system "inside". Thus, it doesn't relate to distributed systems stack (I doen't mean patterns like Context Map and Context Bound, it composes another "part" for distributed systems). And hence for high-distributed systems, containing of "simple unit apps", application of this "part" of DDD doesn't make sense (due to apps simplicity).

Note that some certain DDD principles can be applied to any project. For example, Anticorruption level fits good for integration with external or legacy systems.

Upvotes: 3

Related Questions