SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG
Improving Legacy with DDD
Dr. Carola Lilienthal, cl@wps.de, @cairolali
www.wps.de
463 tangled classes belonging to
10 different components
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
06.02.2019 //// Seite 8WPS - Workplace Solutions GmbH
TECHNICAL ARCHITECTURE
User Interface
Domain
Application
Technicallayering
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
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
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
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
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
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
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
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
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
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
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 >>
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)
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
463 tangled classes belonging to
10 different components
06.02.2019 //// Seite 25WPS - Workplace Solutions GmbH
entities
valueObjects
06.02.2019 //// Seite 26WPS - Workplace Solutions GmbH
entities
valueObjects
06.02.2019 //// Seite 27WPS - Workplace Solutions GmbH184 tangled classes left
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
06.02.2019 //// Seite 30WPS - Workplace Solutions GmbH
@cairolali
cl@wps.de
www.llsa.de
English version
in preparation
THANX!

Contenu connexe

Similaire à DDD Foundation: Improving legacy

CrystalPyramid Profile
CrystalPyramid ProfileCrystalPyramid Profile
CrystalPyramid Profile
L.K. Davidson
 
Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...
Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...
Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...
confluent
 
Rapiscan presentation 260313
Rapiscan presentation 260313Rapiscan presentation 260313
Rapiscan presentation 260313
SKV-VNA
 
Effective cooperation-automtive
Effective cooperation-automtiveEffective cooperation-automtive
Effective cooperation-automtive
Christof Hammel
 

Similaire à DDD Foundation: Improving legacy (20)

From Pre-Production to Film Production to Post-Production to Distribution
From Pre-Production to Film Production to Post-Production to DistributionFrom Pre-Production to Film Production to Post-Production to Distribution
From Pre-Production to Film Production to Post-Production to Distribution
 
Juergen Lumera (Bosch): The Future of the Workshop Mechanic - A Connected Wor...
Juergen Lumera (Bosch): The Future of the Workshop Mechanic - A Connected Wor...Juergen Lumera (Bosch): The Future of the Workshop Mechanic - A Connected Wor...
Juergen Lumera (Bosch): The Future of the Workshop Mechanic - A Connected Wor...
 
RF.AG || Russian FORMAT Video Production Studio Presentation EN
RF.AG || Russian FORMAT Video Production Studio Presentation ENRF.AG || Russian FORMAT Video Production Studio Presentation EN
RF.AG || Russian FORMAT Video Production Studio Presentation EN
 
Effective virtual meetings for project success
Effective virtual meetings for project successEffective virtual meetings for project success
Effective virtual meetings for project success
 
Gabor Event Services: Conferences, National Launches and Tours
Gabor Event Services: Conferences, National Launches and ToursGabor Event Services: Conferences, National Launches and Tours
Gabor Event Services: Conferences, National Launches and Tours
 
CrystalPyramid Profile
CrystalPyramid ProfileCrystalPyramid Profile
CrystalPyramid Profile
 
Voice Dubbing Automation
Voice Dubbing AutomationVoice Dubbing Automation
Voice Dubbing Automation
 
Pre-Production Portfolio Report
Pre-Production Portfolio ReportPre-Production Portfolio Report
Pre-Production Portfolio Report
 
Eliv 2015 bosch-hammel-presentation_v3.4
Eliv 2015 bosch-hammel-presentation_v3.4Eliv 2015 bosch-hammel-presentation_v3.4
Eliv 2015 bosch-hammel-presentation_v3.4
 
ScreenFridge - Transparent Refrigerator from pilot Screentime (ENGLISH)
ScreenFridge - Transparent Refrigerator from pilot Screentime (ENGLISH)ScreenFridge - Transparent Refrigerator from pilot Screentime (ENGLISH)
ScreenFridge - Transparent Refrigerator from pilot Screentime (ENGLISH)
 
Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...
Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...
Why We Heart Kafka @ Bosch PT (Ralph Debusmann, Bosch and Lars Dülfer, Novate...
 
Rapiscan presentation 260313
Rapiscan presentation 260313Rapiscan presentation 260313
Rapiscan presentation 260313
 
2020 06-03 cukenfest-bdd-and-sl_os
2020 06-03 cukenfest-bdd-and-sl_os2020 06-03 cukenfest-bdd-and-sl_os
2020 06-03 cukenfest-bdd-and-sl_os
 
Bosch prezentare zilele biz
Bosch prezentare zilele bizBosch prezentare zilele biz
Bosch prezentare zilele biz
 
Sequencing work for maximum economic benefit using the Scaled Agile Framework...
Sequencing work for maximum economic benefit using the Scaled Agile Framework...Sequencing work for maximum economic benefit using the Scaled Agile Framework...
Sequencing work for maximum economic benefit using the Scaled Agile Framework...
 
You get what you pay for - relationship aspects of building a website success...
You get what you pay for - relationship aspects of building a website success...You get what you pay for - relationship aspects of building a website success...
You get what you pay for - relationship aspects of building a website success...
 
Effective cooperation-automtive
Effective cooperation-automtiveEffective cooperation-automtive
Effective cooperation-automtive
 
Jazzy Innovations Startups Offer 2016
Jazzy Innovations Startups Offer 2016Jazzy Innovations Startups Offer 2016
Jazzy Innovations Startups Offer 2016
 
The adventure of enabling API management in a large enterprise (Josh Wang)
The adventure of enabling API management in a large enterprise (Josh Wang)The adventure of enabling API management in a large enterprise (Josh Wang)
The adventure of enabling API management in a large enterprise (Josh Wang)
 
Bosch Automotive Service Solutions
Bosch Automotive Service SolutionsBosch Automotive Service Solutions
Bosch Automotive Service Solutions
 

Plus de Carola Lilienthal

Plus de Carola Lilienthal (13)

its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...
 
Improving legacy
Improving legacyImproving legacy
Improving legacy
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architecture
 
Monolithen mit ddd zerlegen
Monolithen mit ddd zerlegenMonolithen mit ddd zerlegen
Monolithen mit ddd zerlegen
 
The joy of multiple models
The joy of multiple modelsThe joy of multiple models
The joy of multiple models
 
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigtTechnische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honey
 
From pair programming to mob architecting
From pair programming to mob architecting From pair programming to mob architecting
From pair programming to mob architecting
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honey
 
Technische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigenTechnische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigen
 
Langlebige architekturen
Langlebige architekturenLanglebige architekturen
Langlebige architekturen
 
Technische schulden abbauen
Technische schulden abbauenTechnische schulden abbauen
Technische schulden abbauen
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
 

Dernier

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Dernier (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 

DDD Foundation: Improving legacy

  • 1. WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Improving Legacy with DDD Dr. Carola Lilienthal, cl@wps.de, @cairolali www.wps.de
  • 2. 463 tangled classes belonging to 10 different components
  • 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
  • 20. 463 tangled classes belonging to 10 different components
  • 21. 06.02.2019 //// Seite 25WPS - Workplace Solutions GmbH entities valueObjects
  • 22. 06.02.2019 //// Seite 26WPS - Workplace Solutions GmbH entities valueObjects
  • 23. 06.02.2019 //// Seite 27WPS - Workplace Solutions GmbH184 tangled classes left
  • 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!