Building knowledge of objects in DDD

3

I found in github a Vaughn Vernon sample DDD project. I have not yet had the opportunity to buy his book and read the whole one, but one thing that made me curious is the fact that there are many different objects being defined. And when I speak many are very many.

In one of the delimited contexts it has 68 objects. And this I'm talking about only the domain model, not counting yet other necessary objects. When I say object I am simply wanting to generalize: this includes entities, objects of value, aggregates, repositories, etc.

The question that led to this was the following: I particularly find it impossible to start an application and know that in order to do what you have to do it will take so many objects. When I saw this I thought "fine, but how would I know you need it all?"

And that's where I want to know: does the identification of these objects come directly from the ubiquitous language and hence the importance of it? That is, do they necessarily represent concepts present in the ubiqua language?

And above all, is the knowledge of these objects constructed iteratively? In other words, it is not expected that we know all this, at the beginning we know only one part and then at each iteration with the advance of the understanding of the domain we understand what other objects are necessary?     

asked by anonymous 23.02.2015 / 14:48

1 answer

4
  

It is impossible to start an application and know that to do what you have to do will be needed so many objects like this.

  

The identification of these objects comes directly from the ubiquitous language and hence the importance of it. That is, they necessarily represent concepts present in the ubiquitous language.

  

And above all, knowledge of these objects is constructed iteratively. That is, it is not expected that we know all this, at first we know only one part and then at each iteration with the advance of the understanding of the domain we understand what other objects are necessary.

As you can see, I've turned your questions into affirmations, and here's your answer.

It is a key feature of DDD that domain knowledge is deepened throughout the project, and templates will be refactored and evolved as you learn more about the domain - what happens during project and not just at the beginning of it.

This is also characteristic of any project Agile .

How much to have many objects is due to the fact that a DDD project aims to solve a complex problem, and a complex problem always has many elements.

Attentive:

Like all good ideas in our industry, DDD is meant to think much more than chew.

Tip: read the Eric Evans book - this is the birth certificate of DDD. You will leave with all your 200 current doubts answered and will acquire two thousand new doubts. And that will be a great experience.

    
23.02.2015 / 17:16