3 ms·
very basic common sense stuff, like understanding the business domain/keeping in close contact with the people who do. Much of DDD is common sense, what it off
by dagw 5y ago
very basic common sense stuff, like understanding the business domain/keeping in close contact with the people who do.
Much of DDD is common sense, what it offers is a way to be explicitly common sense. The important factors, the way I see it, is to explicitly make sure both developers and stakeholder have a shared mental model of the business process that maps to the domain in question, they all agree on which 'jargon' terms map to which parts of that model AND that that model (with the agreed upon terms) is explicitly represented in the code.
Keeping in close contact with the business domain people is most useful if you actually understand each other. Too often I've seen developers and business people using the same 'every day' word when discussing a problem and only much later do they find out that their obvious understanding of that word was very different.
- abacadaba 5y agoNope, still means nothing too me. I'll just accept that how this bucket of words is supposed to form some cohesive methodology or pattern for anything is beyond my understanding. I'm sure some people get paid a lot of $ to implement it tho.
- dagw 5y agoSimple Version. Before writing a function that reports how many of a certain thing has been "sold", make sure everybody involved agrees what "sold" means in this specific context and domain. And once you have agreed, make sure that every time a function, variable or database table talks about things "sold" it's using that definition. How complex your methodology around this has to be depends entirely on how complex the domain is and how many different definitions of "sold" is used with different parts of that domain.
- yurish 5y agoWhat's so novel about this that deserve its own name and writing a book about this?
- UK-Al05 5y agoBecause it's incredibly hard to do, and have some ideas to help.
- abacadaba 5y agoAh, ya in our code no one can agree on what sold means so we just trial and error for which one seems to work in each circumstance. Or sometimes we need both so we'll have.. doStuff({soldFromSys1, soldFromSys2, soldType, price, priceType, priceTypeIdKey, customer}) ¯\_(ツ)_/¯