
Intro to DDD Session 1
Presentation
•
Education
•
•
Practice Problem
•
Hard
Mohamed Essam
Used 2+ times
FREE Resource
22 Slides • 4 Questions
1
Domain-Driven Design
• The Domain Model is the “heart” of an application.
• An increase of complexity is often caused by a poorly designed model.
2
Domain
A sphere of knowledge, influence, or activity. The subject
area to which the user applies a program is the domain of
the software.
3
Model
A system of abstractions that describes selected aspects
of a domain and can be used to solve problems related to
that domain.
4
Domain Model
• Contains the “concepts” used in the client’s domain that are used to solve a
specific problem
• Never contains a concept that the client doesn’t care about
• Remember it’s a model!
5
Domain
6
Model
7
Model
8
Entity
Objects that are not fundamentally defined by their
attributes, but rather by a thread of continuity and
identity.
9
Value Object
Value objects have no conceptual identity, but are
fundamentally defined by their attributes.
They describe some characteristic of a thing.
Value Objects are Immutable.
10
Multiple Choice
Human Being is ...
Value Object
An Entity
It depends
NONE
11
It Depends
12
Multiple Choice
1 Euro Bill is ...
Value Object
An Entity
It depends
NONE
13
It Depends
14
Multiple Choice
Does this Code describe Value objects or Entities?
Bucket literOfRed = new Bucket(1L, Color.RED);
Bucket literOfWhite = new Bucket(1L, Color.WHITE);
literOfRed.add(literOfWhite);
// now literOfRed contains 2 liters…. Of PINK!
// and literOfWhite… Empty! Or is it?
Entities
Value Objects
It Depends!
15
Multiple Choice
Does this Code describe Value objects or Entities?
Bucket literOfRed = new Bucket(1L, Color.RED);
Bucket literOfWhite = new Bucket(1L, Color.WHITE);
Bucket lotsOfPink = literOfRed.mixedWith(literOfWhite);
// “magically” a new bucket appears ☺
Bucket evenMorePaint = newBucket.mixedWith(literOfWhite);
Entities
Value Objects
It Depends!
16
Repository
A mechanism for encapsulating storage, retrieval, and
search behavior which emulates a collection of objects.
17
Aggregate
A group of associated objects which are considered as
one unit with regard to data changes…
18
Aggregate
External references are restricted to one member of the
aggregate, designated as the Root.
A set of consistency rules applies within the Aggregate’s
boundaries.
19
Where is the boundary?
20
Event
A notification that something relevant has happened
inside the domain.
21
Adding structure to the Model
22
Bounded Context
Explicitly define the context within which a model applies. Explicitly set
boundaries in terms of team organization, usage within specific parts of the
application, and physical manifestations such as code bases and database
schemas. Keep the model strictly consistent within these bounds, but don’t
be distracted or confused by issues outside.
23
Bounded Context
2. Define boundaries (team organization, usage, physical form).
3. Keep model strictly consistent within bounds.
4. Don’t be distracted by outside ideas/solutions.
1. Construct your model.
24
Ground crew
Passenger
Example - Flight
Flight number
Arrival time
Turn-around time
Flight number
Check-in deadline
Luggage allowance
Flight number
Crewmates
Service schedule
Cabin crew
“Flight”
25
Adding structure to the Model
26
Adding structure to the Model
Domain-Driven Design
• The Domain Model is the “heart” of an application.
• An increase of complexity is often caused by a poorly designed model.
Show answer
Auto Play
Slide 1 / 26
SLIDE
Similar Resources on Wayground
20 questions
The Earth's Layers
Presentation
•
7th - 8th Grade
19 questions
Internet.
Presentation
•
1st Grade
17 questions
What is an Inference?
Presentation
•
4th - 5th Grade
17 questions
Writing an opinion paragraph
Presentation
•
3rd - 5th Grade
20 questions
HTML and CSS
Presentation
•
9th - 12th Grade
18 questions
Character Perspective and Theme
Presentation
•
3rd Grade
20 questions
Parts of an Atom
Presentation
•
8th Grade
20 questions
Short-Term & Long-Term Environmental Changes
Presentation
•
8th Grade
Popular Resources on Wayground
5 questions
A Home on the Shore
Quiz
•
3rd Grade
28 questions
US History Regents Review
Quiz
•
11th Grade
6 questions
A Horse Tale
Quiz
•
3rd Grade
20 questions
Math Review
Quiz
•
3rd Grade
10 questions
Juneteenth History and Significance
Interactive video
•
5th - 8th Grade
20 questions
Dividing Fractions
Quiz
•
5th Grade
55 questions
A Long Walk to Water Final Review
Quiz
•
6th - 8th Grade
10 questions
Equation Word Problems
Quiz
•
7th Grade
Discover more resources for Education
5 questions
A Home on the Shore
Quiz
•
3rd Grade
28 questions
US History Regents Review
Quiz
•
11th Grade
6 questions
A Horse Tale
Quiz
•
3rd Grade
20 questions
Math Review
Quiz
•
3rd Grade
10 questions
Juneteenth History and Significance
Interactive video
•
5th - 8th Grade
20 questions
Dividing Fractions
Quiz
•
5th Grade
55 questions
A Long Walk to Water Final Review
Quiz
•
6th - 8th Grade
10 questions
Equation Word Problems
Quiz
•
7th Grade