DDD can be divided into two parts: strategic and tactical
Strategic tools of DDD are used to analyze business domains and strategy, and to foster a shared understanding of the business between the different stakeholders
for answering the questions of “what?” and “why?”—what software we are building and why we are building it.
Tactical tools address a different aspect of communication issues. DDD’s tactical patterns allow us to write code in a way that reflects the business domain, addresses its goals, and speaks the language of the business.
Tactical is all about the “how”—how each component is implemented
Strategic Design
Analyzing Business Domains
Business Domain: The main area of the company example Starbucks is best known for its coffee.
Subdomain: The subdomain of the main business domain Types
- core → Where bussiness core that make differ from other company
- generic → the thing common for all business/software example implementing Authentication
- supporting → Database landing page etc that help the core subdomain
Discovering Domain Knowledge
Ubiquitous Language
The Ubiquitous Language is a common, shared language that both technical and non-technical team members use to discuss the domain. It ensures that everyone understands the domain’s terms and concepts.
Use the model as the backbone of a language. Committhe team to exercising that language relentlessly in all communication within the team and in the code. Use the same language in diagrams, writing, and especially speech
Managing Domain Complexity chapter 3 need to start