Implementing Domain-Driven Design
Rate it:
Open Preview
Kindle Notes & Highlights
Started reading February 17, 2021
4%
Flag icon
DDD isn’t first and foremost about technology. In its most central principles, DDD is about discussion, listening, understanding, discovery, and business value, all in an effort to centralize knowledge. If you are capable of understanding the business in which your company works, you can at a minimum participate in the software model discovery process to produce a Ubiquitous Language.
5%
Flag icon
Using DDD, you never try to model the whole business enterprise with a single, large domain model.
5%
Flag icon
DDD brings domain experts and software developers together in order to develop software that reflects the mental model of the business experts.
7%
Flag icon
The Ubiquitous Language is a shared language developed by the team—a team composed of both domain experts and software developers.
7%
Flag icon
Draw pictures of the physical and conceptual domain and label them with names and actions.
7%
Flag icon
Create a glossary of terms with simple definitions. List alternative terms, including the ones that show promise and the ones that didn’t work, and why.
7%
Flag icon
Bounded Contexts are relatively small, smaller than we might at first imagine. A Bounded Context is large enough only to capture the complete Ubiquitous Language of the isolated business domain, and no larger.
7%
Flag icon
If you try to apply a single Ubiquitous Language to an entire enterprise, or worse, universally among many enterprises, you will fail.
10%
Flag icon
A Core Domain is a part of the business Domain that is of primary importance to the success of the organization.
11%
Flag icon
I have something more to tell you about domains. They have both a problem space and a solution space. The problem space enables us to think of a strategic business challenge to be solved, while the solution space focuses on how we will implement the software to solve the problem of the business challenge.
11%
Flag icon
It is a desirable goal to align Subdomains one-to-one with Bounded Contexts.
13%
Flag icon
Another trap would be to divide Bounded Contexts in order to distribute tasks to available developer resources. Technical leads and project managers might think it is easier for developers to manage smaller tasks. While that might be the case, enforcing boundaries for the sake of task distribution plays false to the linguistic motivations of contextual modeling. In fact, there is no need to impose fake boundaries in order to manage technical resources.
16%
Flag icon
This nuance serves as another visual cue. Upstream models have influences on downstream models, as activities on a river that occur upstream tend to have impacts on populations downstream, whether positive or negative. Consider pollutants dumped into a river by a large city. Those pollutants may have little impact on that city, but downstream cities may face severe consequences.