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

  • Thread starter Thread starter Author #1
  • Start date Start date
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.
 
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
 
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
 
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?
 
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.
 
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
 
Back
Top