Domain Driven Design
What types of model does an enterprise need?
A model that is either very large, or abstract, or both
What is an example of a domain?
A retail business may have an inventory domain, a purchasing domain, a human resources domain, a financial domain
What is Bounded Context?
A system that fulfills the goals of the business in the real world
What is a model in DDD?
A term that helps programmers to communicate with domain experts
What is Domain-Driven Design?
A way to build software by looking at the processes and rules of a domain
When does the language and model evolve?
As the team understanding of the domain grows
What is DDD's central solution?
Bounded Context
How to test Ubiquitous Language?
By using it during conversations with domain experts
What is DDD particularly suited for?
Complex domains with messy logic that needs to be organized
Why is it harder to model a larger domain?
Different groups of people will use subtly different vocabularies in different parts of a large organization
What is a domain in DDD?
It's what the business does and the context of how it does it
What is a better solution to the shared database approach?
Messaging based approach
What is a better alternative to a Canonical Model?
Multiple Canonical Models
How to apply Bounded Context?
Split large models into terms and rules that apply consistently
What are entities in DDD?
TODO
What are value objects in DDD?
TODO
Where are aggregates in DDD?
TODO
What's in a Bounded Context?
Terms, definitions and concepts from the Ubiquitous Language
What is Ubiquitous language?
The common language between programmers and users
What is a context in DDD?
The maximum extent a model can be stretched without compromising its conceptual integrity
Why DDD needs a model?
To be the main concept for designing a software
What is a Context Map?
a general purpose technique, part of the Domain Driven Design toolkit, helps the architects and developers manage the many types of complexity they face in software development projects. (https://www.infoq.com/articles/ddd-contextmapping/)
What is the problem with a Canonical Model?
hard for anyone to understand despite a model being good
What implies comprehension difficulties?
largeness and abstractness
What are subdomains?
smaller groups of the business that collaborate to accomplish business' goals