Search Header Logo
Intro to DDD Session 1

Intro to DDD Session 1

Assessment

Presentation

Education

Practice Problem

Hard

Created by

Mohamed Essam

Used 2+ times

FREE Resource

22 Slides • 4 Questions

1

media

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

media

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

media

Model

A system of abstractions that describes selected aspects

of a domain and can be used to solve problems related to

that domain.

4

media

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

media

Domain

6

media

Model

7

media

Model

8

media

Entity

Objects that are not fundamentally defined by their

attributes, but rather by a thread of continuity and

identity.

9

media

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 ...

1

Value Object

2

An Entity

3

It depends

4

NONE

11

media

It Depends

12

Multiple Choice

1 Euro Bill is ...

1

Value Object

2

An Entity

3

It depends

4

NONE

13

media

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?

1

Entities

2

Value Objects

3

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);

1

Entities

2

Value Objects

3

It Depends!

16

media

Repository

A mechanism for encapsulating storage, retrieval, and

search behavior which emulates a collection of objects.

17

media

Aggregate

A group of associated objects which are considered as

one unit with regard to data changes…

18

media

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

media

Where is the boundary?

20

media

Event

A notification that something relevant has happened

inside the domain.

21

media

Adding structure to the Model

22

media

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

media

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

media

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

media

Adding structure to the Model

26

media

Adding structure to the Model

media

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