Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG
Improving Legacy with DDD
Dr. Carola Lilien...
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 clas...
06.02.2019 //// Seite 8WPS - Workplace Solutions GmbH
TECHNICAL ARCHITECTURE
User Interface
Domain
Application
Technicalla...
06.02.2019 //// Seite 9WPS - Workplace Solutions GmbH
NO! DOMAIN-DRIVEN ARCHITECTURE
Domain
Module B
Domain
Module A
Loose...
06.02.2019 //// Seite 10WPS - Workplace Solutions GmbH
EACH BOUNDED CONTEXT HAS ITS OWN MODEL
▪ Each team can work freely ...
06.02.2019 //// Seite 11WPS - Workplace Solutions GmbH
DOMAIN MODEL IN LEGACY CODE
▪ Large domain classes (entities/aggreg...
06.02.2019 //// Seite 14WPS - Workplace Solutions GmbH
HOW DO I CUT MY LEGACY TO FIT THE DOMAIN?
▪ By departments in the o...
06.02.2019 //// Seite 15WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NU...
06.02.2019 //// Seite 16WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NU...
06.02.2019 //// Seite 17WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NU...
06.02.2019 //// Seite 18WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NU...
06.02.2019 //// Seite 19WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NU...
06.02.2019 //// Seite 20WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NU...
06.02.2019 //// Seite 21WPS - Workplace Solutions GmbH
TICKET AGENT
MOVIEGOER
WEEKLY SCHEDULE
<< in Arbeit >>
REQUESTED NU...
06.02.2019 //// Seite 22WPS - Workplace Solutions GmbH
MODULARIZATION BY DOMAIN: HOW DO WE PROCEED?
Refactorings
Analyze +...
06.02.2019 //// Seite 23WPS - Workplace Solutions GmbH
APPLYING BUILDING BLOCKS TO LEGACY CODE
User Interface
Domain
Appli...
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 ...
06.02.2019 //// Seite 30WPS - Workplace Solutions GmbH
@cairolali
cl@wps.de
www.llsa.de
English version
in preparation
THA...
DDD Foundation: Improving legacy
DDD Foundation: Improving legacy
Nächste SlideShare
Wird geladen in …5
×

von

DDD Foundation: Improving legacy Slide 1 DDD Foundation: Improving legacy Slide 2 DDD Foundation: Improving legacy Slide 3 DDD Foundation: Improving legacy Slide 4 DDD Foundation: Improving legacy Slide 5 DDD Foundation: Improving legacy Slide 6 DDD Foundation: Improving legacy Slide 7 DDD Foundation: Improving legacy Slide 8 DDD Foundation: Improving legacy Slide 9 DDD Foundation: Improving legacy Slide 10 DDD Foundation: Improving legacy Slide 11 DDD Foundation: Improving legacy Slide 12 DDD Foundation: Improving legacy Slide 13 DDD Foundation: Improving legacy Slide 14 DDD Foundation: Improving legacy Slide 15 DDD Foundation: Improving legacy Slide 16 DDD Foundation: Improving legacy Slide 17 DDD Foundation: Improving legacy Slide 18 DDD Foundation: Improving legacy Slide 19 DDD Foundation: Improving legacy Slide 20 DDD Foundation: Improving legacy Slide 21 DDD Foundation: Improving legacy Slide 22 DDD Foundation: Improving legacy Slide 23 DDD Foundation: Improving legacy Slide 24 DDD Foundation: Improving legacy Slide 25
Nächste SlideShare
What to Upload to SlideShare
Weiter
Herunterladen, um offline zu lesen und im Vollbildmodus anzuzeigen.

1 Gefällt mir

Teilen

Herunterladen, um offline zu lesen

DDD Foundation: Improving legacy

Herunterladen, um offline zu lesen

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.

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

DDD Foundation: Improving legacy

  1. 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. 2. 463 tangled classes belonging to 10 different components
  3. 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. 4. 06.02.2019 //// Seite 8WPS - Workplace Solutions GmbH TECHNICAL ARCHITECTURE User Interface Domain Application Technicallayering
  5. 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. 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. 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. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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 >>
  16. 16. 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)
  17. 17. 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
  18. 18. 463 tangled classes belonging to 10 different components
  19. 19. 06.02.2019 //// Seite 25WPS - Workplace Solutions GmbH entities valueObjects
  20. 20. 06.02.2019 //// Seite 26WPS - Workplace Solutions GmbH entities valueObjects
  21. 21. 06.02.2019 //// Seite 27WPS - Workplace Solutions GmbH184 tangled classes left
  22. 22. 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
  23. 23. 06.02.2019 //// Seite 30WPS - Workplace Solutions GmbH @cairolali cl@wps.de www.llsa.de English version in preparation THANX!
  • powerirs

    Apr. 16, 2020

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.

Aufrufe

Aufrufe insgesamt

968

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

47

Befehle

Downloads

20

Geteilt

0

Kommentare

0

Likes

1

×