New to Domain-Driven Design: What is a domain?

A

Author #1

Hi, I am new to Domain-Driven Design.

I have spent a few hours reading on the web on this topic, and have
also read the *preface* of Eric Evans' book. But I still have not
figured out what they mean by "domain". A lot of articles quote
Eric's DDD premise as such (e.g.: http://domaindrivendesign.org/resources/what_is_ddd).

<quote>
The premise of domain-driven design is two-fold:

* For most software projects, the primary focus should be on the
domain and domain logic; and
* Complex domain designs should be based on a model.
</quote>

But, they don't tell noobs what they mean by "domain".

Maybe I am just unlucky and haven't found an article that defines
"domain", or maybe authors think that it is common sense and don't
bother defining this terminology.

I guess I will have a better idea if I read the whole book of Eric
Evans, but if any of you could kindly explain briefly what a "Domain"
is before I finish that book, it'll definitely get us noobs up to
speed with this design principle.
 
A

Arne Vajhøj

Author said:
Thank you. Yes, those are very brief explanation. I think "Domain"
is a pretty fuzzy term. In other words, given the same project from
the same customer, if we let different development teams do the
business domain analysis, they will most likely come up with very
different business domains. Agree?

No.

If the two teams really understand the business, then the models
will be very similar (but not completely identical).

Arne
 
A

Arne Vajhøj

Author said:
I do agree with you on 2nd thought, given that all participating
development teams are pretty professional in doing business domain
analysis. Although I keep saying business domain, I don't have a good
understanding of it. Take the Amazon enterprise as an example, what
kind of business domains are there?

I would assume Amazon has a few thousand domain classes.

You can start by listing all the entities involved in an
online book sale.

Arne
 
A

Author #1

I would assume Amazon has a few thousand domain classes.

You can start by listing all the entities involved in an
online book sale.

Arne

My guess is that one business domain is like a major component of the
entire enterprise, and thus to model that business domain, we would
have define a whole bunch of business entities, does this sound about
right?
 
A

Author #1

My guess is that one business domain is like a major component of the
entire enterprise, and thus to model that business domain, we would
have define a whole bunch of business entities, does this sound about
right?

Erratum: Please insert "to" between "have" and "define" above.
 
A

Arne Vajhøj

Author said:
Erratum: Please insert "to" between "have" and "define" above.

I would expect the division of a companies domain classes in
separate domains to be more defined by the scope of the project
than by business organization. Selling books and selling PaaS
would have two separate customer facing systems, but the two
business units may very well use the same systems for finance
and HR.

Arne
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top