Today programmers do not develop applications from scratch, but they spend their time fixing, extending, modifying and enhancing existing applications. These old systems are often a large tangled mess, where changes become harder and harder. DDD can help us to improve this situation and to meltdown the big ball of mud.
3. 06.02.2019 //// Seite 7WPS - Workplace Solutions GmbH
▪Use design patterns
▪Do test driven development
▪Write modular classes with one single
responsibility
▪Aim for high cohesion and low coupling
MOB ARCHITECTING WITH THE TEAM
Structure101
SotoArc
Lattix
4. 06.02.2019 //// Seite 8WPS - Workplace Solutions GmbH
TECHNICAL ARCHITECTURE
User Interface
Domain
Application
Technicallayering
5. 06.02.2019 //// Seite 9WPS - Workplace Solutions GmbH
NO! DOMAIN-DRIVEN ARCHITECTURE
Domain
Module B
Domain
Module A
Loose coupling = as little coupling as possible!
Technicallayering Domain
Module C
User Interface User InterfaceUser Interface
Domain
Application
Domain
Application
Domain
Application
6. 06.02.2019 //// Seite 10WPS - Workplace Solutions GmbH
EACH BOUNDED CONTEXT HAS ITS OWN MODEL
▪ Each team can work freely on their own domain model
▪ Know the limits
▪ Stay inside the borders
7. 06.02.2019 //// Seite 11WPS - Workplace Solutions GmbH
DOMAIN MODEL IN LEGACY CODE
▪ Large domain classes (entities/aggregates)
▪ Unmanageable complexity
▪ Several models mixed and squeezed together
▪ Strong dependencies between teams
Foto: CMS Higgs-even/Wikipedia/CC-BY-SA-3.0
8.
9.
10. 06.02.2019 //// Seite 14WPS - Workplace Solutions GmbH
HOW DO I CUT MY LEGACY TO FIT THE DOMAIN?
▪ By departments in the organization or groups of domain experts
▪ According to differences in the use/definition of key concepts in the domain
▪ According to boundaries in the business process described by the domain experts
▪ Information runs in one direction
▪ Processes are executed in different rhythms
▪ Processes are triggered by different triggers
11. 06.02.2019 //// Seite 15WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
12. 06.02.2019 //// Seite 16WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Trigger
13. 06.02.2019 //// Seite 17WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Triggeronce a week
14. 06.02.2019 //// Seite 18WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Triggeronce a week
each time a
customer asks
for a ticket
15. 06.02.2019 //// Seite 19WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Triggeronce a week
each time a
customer asks
for a ticket
Cinema management
Ticket sales
16. 06.02.2019 //// Seite 20WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Triggeronce a week
each time a
customer asks
for a ticket
Cinema management
Ticket sales
information flow
17. 06.02.2019 //// Seite 21WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Triggeronce a week
each time a
customer asks
for a ticket
Cinema management
Ticket sales
information flow
WEEKLY SCHEDULE
<< printed >>
18. 06.02.2019 //// Seite 22WPS - Workplace Solutions GmbH
MODULARIZATION BY DOMAIN: HOW DO WE PROCEED?
Refactorings
Analyze +
Discussion
Define
measures
ArchitectureRekonstruction
Source-
Code
Domain
Modules
Bounded
Contexts
Alternatives
• Prioritization of measures
• Planning into the development cycle
Violations
• Identified with the domain experts
• Discuss ubiquitous language + processes
• Find bounded contexts (first ideas)
19. 06.02.2019 //// Seite 23WPS - Workplace Solutions GmbH
APPLYING BUILDING BLOCKS TO LEGACY CODE
User Interface
Domain
Application
Layeringbypatterns
Bounded Context
Repository
Factory
Model
View
ValueObject
Service
Entity/
Aggregate
Controller
24. 06.02.2019 //// Seite 28WPS - Workplace Solutions GmbH
MODULARITY MATURITY INDEX (MMI)
612.869 LOC
14.756.435 LOC
252.062 LOC
804.093 LOC
543.388 LOC
1.035.668 LOC
486.358 LOC
175.258 LOC
42.311 LOC
193.383 LOC
643.466 LOC
245.754 LOC
2.890.204 LOC
141.696 LOC
512.086 LOC
9.988.363 LOC
200.591 LOC
922.949 LOC
22.658 LOC
663.862 LOC
3.270.188 LOC
1.521.357 LOC
0
2
4
6
8
10
25. 06.02.2019 //// Seite 30WPS - Workplace Solutions GmbH
@cairolali
cl@wps.de
www.llsa.de
English version
in preparation
THANX!