DOMAIN-DRIVEN DESIGN                                Modernes Softwaredesign                                               ...
ÜBER PATRICK LOBACHER• Patrick Lobacher (geb. Schuster) - GF typovision*• 40 Jahre alt, verheiratet, wohnhaft in München• ...
ÜBER TYPOVISION*•   Münchner Fullservice-Agentur für digitale Kommunikation•   9 Mitarbeiter (+ 8 aus festem Freelancer Po...
Problem                                                  Lösung(c) 2011 - typovision* | Domain-driven Design | Patrick Lob...
Problem                      DOMAIN DRIVEN                                                            DESIGN              ...
Problem                                                                 Lösung                 Kunde                      ...
DOMAIN DRIVEN DESIGN                  Kommunikation                                           Modell                      ...
WAS IST DDD?                                              Eine Definition(c) 2011 - typovision* | Domain-driven Design | Pa...
DIE „ERFINDER“                         JIMMY NILSSON             ERIC EVANS            MARTIN FOWLER                      ...
DDD DEFINITION     Domain Driven Design ist ein von Eric Evans geprägter        Begriff für eine Anwendungsdomänen-getrieb...
BASIS ANNAHME      Domain Driven Design basiert auf zwei Annahmen:       • Der Schwerpunkt des Softwaredesigns liegt auf d...
TYPISCHE PROJEKTE?                                  Eine kurze Zusammenfassung(c) 2011 - typovision* | Domain-driven Desig...
TYPISCHE PROJEKTE ?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   12
TYPISCHE PROJEKTE ?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   13
TYPISCHE PROJEKTE ?•    Unterschiedliches Verständnis von     domänenspezifischen Konzepten als einen wichtigen     Grund f...
DOMAIN MODEL                          Die Domäne und das zugehörige Modell(c) 2011 - typovision* | Domain-driven Design | ...
SCHICHTARCHITEKTUR(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   16
DOMÄNE                                       DOMÄNE / DOMAIN                 Fachgebiet                                   ...
DOMÄNE / MODELL•    Um also ein einheitliches Verständnis zwischen diesen     Gruppen (Domänenexperte und Applikationsentw...
MODELLIERUNG•   Wichtigster Prozess!!!•   Domänenexperte (Kunde) + Dienstleister (PM oder    Programmierer)•   Interativer...
MODELLIERUNG•   In der Regel entsteht    während dieser    Modellierungs-    Gespräche Diagramme,    die die Eigenschaften...
BOUNDED CONTEXT•   Bestellungen erzeugen, aufgeben, abschließen•   Kunde benachrichtigen•   Rechnungen                    ...
BOUNDED CONTEXT                                      Bestellabwicklung   Lagerhaltung                                     ...
UBIQUITOUS LANGUAGE                             Den Turmbau von Babel verhindern(c) 2011 - typovision* | Domain-driven Des...
UBIQUITOUS LANGUAGE•   Zentrales, wichtigstes Element beim Modellieren ist eine    gemeinsame Sprache => Ubiquitous langua...
UBIQUITOUS LANGUAGE•   Wichtig für die Etablierung eines einheitlichen Domänen-    Modells•   Ubiquitous Language => Model...
UL GLOSSAR        Begriff                           Bedeutung                                 Übersetzung        Bestellun...
BAUSTEINE FÜR DDD                                         Das Model aufbauen(c) 2011 - typovision* | Domain-driven Design ...
DDD BAUSTEINE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   28
DOMAIN OBJEKT•   Die wichtigste Unterscheidung die Evans zwischen    Modellelementen macht, ist ob ein Element eine Identi...
DOMAIN OBJEKT•   Entities    •   Identifizierbare Objekte, mit Identität    •   Beispiel: Kunde selbst•   Value Objects    ...
DOMAIN OBJEKT•   Services    •   Nicht an das Objekt gebundene Funktionen oder        Handling von mehreren Objekten    • ...
OBJEKT LEBENSZYKLUS                      Richtiges Leben                                      Domain-driven Design        ...
REPOSITORIES•   Technische Details    (der Persistenz) sollen    nicht in die UL    eindringen•   Dafür wurden    Reposito...
AGGREGATE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   34
AGGREGATE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   35
ZUSAMMENFASSUNG(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   36
MVC(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   37
MVC                                                                         Domain                                        ...
VORTEILE VON DDD                    Warum kompliziert, wenn es auch einfach geht(c) 2011 - typovision* | Domain-driven Des...
VORTEILE•   Besseres Verständnis der Domäne•   Saubere Strukturierung des Codes•   Eleganter, schöner Code•   Code „sozusa...
DDD IN TYPO3                                            FLOW3 / Extbase(c) 2011 - typovision* | Domain-driven Design | Pat...
FLOW3•   Die Architektur von    FLOW3 basiert auf DDD•   Erstes PHP-Framework    mit ganzheitlicher    DDD Umsetzung(c) 20...
TYPO3•   Extbase & Fluid•   Seit TYPO3 4.3 gehört die Systemextension    „Extbase“ (von Jochen Rau)    zum Core•   Zusamme...
EXTBASE KICKSTARTER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   44
QUELLEN                                       Weitere Informationen(c) 2011 - typovision* | Domain-driven Design | Patrick...
QUELLEN - BÜCHER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   46
QUELLEN - BÜCHER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   47
QUELLEN - DDD•   Domain-Driven Design Community    domaindrivendesign.org•   Domain Driven Design Quickly (PDF)    www.inf...
VIELEN DANK!                                        FRAGEN?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobache...
KONTAKT - KLASSISCH   Adresse:   typovision* - agentur für digitale kommunikation   Belfortstr. 8   81667 München   Fon:  ...
KONTAKT - SOCIAL CHANNELS   Twitter:                www.twitter.com/_typovision_                           www.twitter.com...
Upcoming SlideShare
Loading in...5
×

DDD - Domain Driven Design - TYPO3camp Stuttgart 2011

3,459

Published on

Das Grund-Paradigma von Extbase und FLOW3 ist das sogenannte "Domain Driven Design" - der Vortrag zeigt was sich dahinter verbirgt und erklärt in einfachen Beispielen, warum es essentiell für Projektleiter, Programmierer und Kunden ist, dieses Paradigma zu verinnerlichen um Zeit, Mühe und letztlich Kosten zu sparen.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,459
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
75
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

DDD - Domain Driven Design - TYPO3camp Stuttgart 2011

  1. 1. DOMAIN-DRIVEN DESIGN Modernes Softwaredesign 22.05.2011 Patrick Lobacher (GF typovision*)(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011
  2. 2. ÜBER PATRICK LOBACHER• Patrick Lobacher (geb. Schuster) - GF typovision*• 40 Jahre alt, verheiratet, wohnhaft in München• Autor von 6 Fachbüchern und 26 Fachartikeln zum Thema TYPO3 und Webentwicklung• Certified TYPO3 Integrator seit 2009• Mitglied in den TYPO3 Core-Teams: Certification & Documentation• Mitveranstalter des TYPO3camp München• Speaker auf nationalen und internationalen Kongressen• Dozent für führende Schulungsinstitute und die MVHS(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 2
  3. 3. ÜBER TYPOVISION*• Münchner Fullservice-Agentur für digitale Kommunikation• 9 Mitarbeiter (+ 8 aus festem Freelancer Pool)• Geschäftsführer: Patrick Lobacher• Spezialisiert auf TYPO3 seit 8 Jahren (Extbase/Fluid seit 2009)• Agenturpräsentation unter: www.typovision.de/dieagentur• Über 120 TYPO3-Projekte jeglicher Größenordnung - für Kunden wie:(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 3
  4. 4. Problem Lösung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 4
  5. 5. Problem DOMAIN DRIVEN DESIGN Lösung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 4
  6. 6. Problem Lösung Kunde Dienstleister Domänenexperte Programmierer KEIN Proxy-Experte! PM(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 5
  7. 7. DOMAIN DRIVEN DESIGN Kommunikation Modell Explizitheit Ignoranz Objektorientierung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 6
  8. 8. WAS IST DDD? Eine Definition(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 7
  9. 9. DIE „ERFINDER“ JIMMY NILSSON ERIC EVANS MARTIN FOWLER Easy setup of a TYPO3 demo site(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 8
  10. 10. DDD DEFINITION Domain Driven Design ist ein von Eric Evans geprägter Begriff für eine Anwendungsdomänen-getriebene Herangehensweise an das Design komplexer objektorientierter Software.(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 9
  11. 11. BASIS ANNAHME Domain Driven Design basiert auf zwei Annahmen: • Der Schwerpunkt des Softwaredesigns liegt auf der Fachlichkeit und der Fachlogik. • Der Entwurf komplexer fachlicher Zusammenhänge sollte auf einem Fachmodell basieren. => Explizit machen von impliziten Zusammenhängen(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 10
  12. 12. TYPISCHE PROJEKTE? Eine kurze Zusammenfassung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 11
  13. 13. TYPISCHE PROJEKTE ?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 12
  14. 14. TYPISCHE PROJEKTE ?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 13
  15. 15. TYPISCHE PROJEKTE ?• Unterschiedliches Verständnis von domänenspezifischen Konzepten als einen wichtigen Grund für die divergierenden Vorstellung der beiden Gruppen Benutzer (Kunde) und Anwendungsentwickler (Dienstleister) (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 14
  16. 16. DOMAIN MODEL Die Domäne und das zugehörige Modell(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 15
  17. 17. SCHICHTARCHITEKTUR(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 16
  18. 18. DOMÄNE DOMÄNE / DOMAIN Fachgebiet Geschäftsfeld Einsatzbereich Problemfeld Infrastruktur Persistenz Eingabe/Ausgabe GET/POST/COOKIES(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 17
  19. 19. DOMÄNE / MODELL• Um also ein einheitliches Verständnis zwischen diesen Gruppen (Domänenexperte und Applikationsentwickler) zu schaffen, wird ein Modell der Domäne etabliert• Ein Model ist eine auf bestimmte Zwecke ausgerichtete vereinfachende Beschreibung der Wirklichkeit (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 18
  20. 20. MODELLIERUNG• Wichtigster Prozess!!!• Domänenexperte (Kunde) + Dienstleister (PM oder Programmierer)• Interativer, agiler Prozess• Ergebnis => Modell(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 19
  21. 21. MODELLIERUNG• In der Regel entsteht während dieser Modellierungs- Gespräche Diagramme, die die Eigenschaften, Funktionalitäten und Beziehungen der relevanten Bestandteile des Problemfeldes in Objekte verpackt und deren Relationen darstellt.(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 20
  22. 22. BOUNDED CONTEXT• Bestellungen erzeugen, aufgeben, abschließen• Kunde benachrichtigen• Rechnungen Onlineshop• Lagerbestände(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 21
  23. 23. BOUNDED CONTEXT Bestellabwicklung Lagerhaltung Rechnungen Bounded Context(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 22
  24. 24. UBIQUITOUS LANGUAGE Den Turmbau von Babel verhindern(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 23
  25. 25. UBIQUITOUS LANGUAGE• Zentrales, wichtigstes Element beim Modellieren ist eine gemeinsame Sprache => Ubiquitous language („Allgegenwärtige Sprache“)• Gesprochen von allen (!) Team-Mitgliedern (inkl. Kunde)• Basis für alle Aktivitäten im Projekt• Namensraum für alle Artefakte im Modell(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 24
  26. 26. UBIQUITOUS LANGUAGE• Wichtig für die Etablierung eines einheitlichen Domänen- Modells• Ubiquitous Language => Modell => Implementierung (!)• Änderungen in einem der drei -> Änderung in Allen• Prinzipiell multilingual => besser englisch• Consultingprozess(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 25
  27. 27. UL GLOSSAR Begriff Bedeutung Übersetzung Bestellung Summe aus verschiedenen Posten Order Einheit bestehende aus Produkt, Posten Row Anzahl und Preis Ort wo die Produkte aufgehoben Lager Warehouse werden - begrenzte Kapazität Ein physikalischer oder virtueller Produkt Product Artikel aus dem Angebot des Kunden Rechnung Detaillierte Aufstellung der Bestellung Invoice(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 26
  28. 28. BAUSTEINE FÜR DDD Das Model aufbauen(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 27
  29. 29. DDD BAUSTEINE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 28
  30. 30. DOMAIN OBJEKT• Die wichtigste Unterscheidung die Evans zwischen Modellelementen macht, ist ob ein Element eine Identität hat oder nicht.• Objekte müssen beispielsweise identifizierbar sein, um sie von einander unterscheiden zu können oder zu einem späteren Zeitpunkt wieder zu finden um weitere Operationen mit diesen durchführen zu können (Personen, Events, Konto, ...)• Andere Objekte stellen nur die Repräsentation einer Eigenschaft dar (Farben, Tags, ...). Diese sind definiert durch alle Eigenschaften.(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 29
  31. 31. DOMAIN OBJEKT• Entities • Identifizierbare Objekte, mit Identität • Beispiel: Kunde selbst• Value Objects • Nicht identifizierbare Objekte, ohne eigene Identität, nicht veränderbar • Beispiel: Adresse bei einem Kunden(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 30
  32. 32. DOMAIN OBJEKT• Services • Nicht an das Objekt gebundene Funktionen oder Handling von mehreren Objekten • Beispiel: Geokoordinaten-Ermittlung für Adresse oder Überweisung zwischen zwei Konten(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 31
  33. 33. OBJEKT LEBENSZYKLUS Richtiges Leben Domain-driven Design Datenspeicher Quelle: Rau/Kurfürst - Extbase & FLuid, O‘Reilly(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 32
  34. 34. REPOSITORIES• Technische Details (der Persistenz) sollen nicht in die UL eindringen• Dafür wurden Repositories „erschaffen“(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 33
  35. 35. AGGREGATE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 34
  36. 36. AGGREGATE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 35
  37. 37. ZUSAMMENFASSUNG(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 36
  38. 38. MVC(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 37
  39. 39. MVC Domain Model Repository Validator View ViewHelper Controller(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 38
  40. 40. VORTEILE VON DDD Warum kompliziert, wenn es auch einfach geht(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 39
  41. 41. VORTEILE• Besseres Verständnis der Domäne• Saubere Strukturierung des Codes• Eleganter, schöner Code• Code „sozusagen“ von jedem verständlich• Hohe Komplexität erst so wirklich handhabbar• Zuständigkeiten klar getrennt• Leicht zu erweitern• schnellere Time-to-market (TTM)(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 40
  42. 42. DDD IN TYPO3 FLOW3 / Extbase(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 41
  43. 43. FLOW3• Die Architektur von FLOW3 basiert auf DDD• Erstes PHP-Framework mit ganzheitlicher DDD Umsetzung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 42
  44. 44. TYPO3• Extbase & Fluid• Seit TYPO3 4.3 gehört die Systemextension „Extbase“ (von Jochen Rau) zum Core• Zusammen mit Fluid (Sebastian Kurfürst) downport von FLOW3 DDD Konzepten• Zukunftssicher durch Aufwärtskompatibilität nach FLOW3(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 43
  45. 45. EXTBASE KICKSTARTER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 44
  46. 46. QUELLEN Weitere Informationen(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 45
  47. 47. QUELLEN - BÜCHER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 46
  48. 48. QUELLEN - BÜCHER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 47
  49. 49. QUELLEN - DDD• Domain-Driven Design Community domaindrivendesign.org• Domain Driven Design Quickly (PDF) www.infoq.com/minibooks/domain-driven-design-quickly• DDD Step By Step (PDF) thinkddd.com/assets/2/Domain_Driven_Design_-_Step_by_Step.pdf(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 48
  50. 50. VIELEN DANK! FRAGEN?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 49
  51. 51. KONTAKT - KLASSISCH Adresse: typovision* - agentur für digitale kommunikation Belfortstr. 8 81667 München Fon: +49-89-18 92 08 70 Fax: +49-89-18 92 08 69 Email: info@typovision.de Web: http://www.typovision.de(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 50
  52. 52. KONTAKT - SOCIAL CHANNELS Twitter: www.twitter.com/_typovision_ www.twitter.com/PatrickLobacher Facebook: www.facebook.com/typovision XING: www.xing.com/profile/Patrick_Lobacher Slideshare: www.slideshare.net/plobacher Amazon: www.amazon.de/Patrick-Lobacher/e/B0045AQVEA(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 51
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×