of 52 /52
(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 DOMAIN-DRIVEN DESIGN Modernes Softwaredesign 22.05.2011 Patrick Lobacher (GF typovision*)

DDD - Domain Driven Design - TYPO3camp Stuttgart 2011

Embed Size (px)

DESCRIPTION

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.

Text of DDD - Domain Driven Design - TYPO3camp Stuttgart 2011

  • 1. DOMAIN-DRIVEN DESIGNModernes Softwaredesign 22.05.2011Patrick Lobacher (GF typovision*)(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011

2. BER PATRICK LOBACHER Patrick Lobacher (geb. Schuster) - GF typovision* 40 Jahre alt, verheiratet, wohnhaft in Mnchen Autor von 6 Fachbchern und 26 Fachartikeln zum Thema TYPO3 und Webentwicklung Certied TYPO3 Integrator seit 2009 Mitglied in den TYPO3 Core-Teams: Certication & Documentation Mitveranstalter des TYPO3camp Mnchen Speaker auf nationalen und internationalen Kongressen Dozent fr fhrende Schulungsinstitute und die MVHS(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 2 3. BER TYPOVISION* Mnchner Fullservice-Agentur fr digitale Kommunikation 9 Mitarbeiter (+ 8 aus festem Freelancer Pool) Geschftsfhrer: Patrick Lobacher Spezialisiert auf TYPO3 seit 8 Jahren (Extbase/Fluid seit 2009) Agenturprsentation unter: www.typovision.de/dieagentur ber 120 TYPO3-Projekte jeglicher Grenordnung - fr Kunden wie:(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 3 4. ProblemLsung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 4 5. ProblemDOMAIN DRIVENDESIGNLsung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 4 6. Problem Lsung Kunde DienstleisterDomnenexperte Programmierer KEIN Proxy-Experte! PM(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 5 7. DOMAIN DRIVEN DESIGNKommunikation ModellExplizitheitIgnoranz Objektorientierung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 6 8. WAS IST DDD?Eine Denition(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 7 9. DIE ERFINDER JIMMY NILSSON ERIC EVANSMARTIN FOWLER Easy setup of a TYPO3 demo site(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 8 10. DDD DEFINITION Domain Driven Design ist ein von Eric Evans geprgterBegriff fr eine Anwendungsdomnen-getriebene Herangehensweise an das Design komplexer objektorientierter Software.(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 9 11. BASIS ANNAHMEDomain Driven Design basiert auf zwei Annahmen: Der Schwerpunkt des Softwaredesigns liegt auf der Fachlichkeitund der Fachlogik. Der Entwurf komplexer fachlicher Zusammenhnge sollte aufeinem Fachmodell basieren.=> Explizit machen von impliziten Zusammenhngen(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 10 12. TYPISCHE PROJEKTE?Eine kurze Zusammenfassung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 11 13. TYPISCHE PROJEKTE ?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 12 14. TYPISCHE PROJEKTE ?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 13 15. TYPISCHE PROJEKTE ?Unterschiedliches Verstndnis von domnenspezischen Konzepten als einen wichtigen Grund fr 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. DOMAIN MODELDie Domne und das zugehrige Modell(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 15 17. SCHICHTARCHITEKTUR(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 16 18. DOMNE DOMNE / DOMAIN Fachgebiet GeschftsfeldEinsatzbereich ProblemfeldInfrastrukturPersistenz Eingabe/Ausgabe GET/POST/COOKIES(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 17 19. DOMNE / MODELLUm also ein einheitliches Verstndnis zwischen diesen Gruppen (Domnenexperte und Applikationsentwickler) zu schaffen, wird ein Modell der Domne etabliertEin 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. MODELLIERUNG Wichtigster Prozess!!! Domnenexperte (Kunde) + Dienstleister (PM oderProgrammierer) Interativer, agiler Prozess Ergebnis => Modell(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 19 21. MODELLIERUNG In der Regel entstehtwhrend dieserModellierungs-Gesprche Diagramme,die die Eigenschaften,Funktionalitten undBeziehungen derrelevanten Bestandteile des Problemfeldes in Objekteverpackt und deren Relationen darstellt.(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 20 22. BOUNDED CONTEXT Bestellungen erzeugen, aufgeben, abschlieen Kunde benachrichtigen RechnungenOnlineshop Lagerbestnde(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 21 23. BOUNDED CONTEXTBestellabwicklung Lagerhaltung Rechnungen Bounded Context(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 22 24. UBIQUITOUS LANGUAGE Den Turmbau von Babel verhindern(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 23 25. UBIQUITOUS LANGUAGE Zentrales, wichtigstes Element beim Modellieren ist einegemeinsame Sprache => Ubiquitous language(Allgegenwrtige Sprache) Gesprochen von allen (!) Team-Mitgliedern (inkl. Kunde) Basis fr alle Aktivitten im Projekt Namensraum fr alle Artefakte im Modell(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 24 26. UBIQUITOUS LANGUAGE Wichtig fr die Etablierung eines einheitlichen Domnen-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. UL GLOSSARBegriff Bedeutung bersetzungBestellung Summe aus verschiedenen Posten OrderEinheit bestehende aus Produkt,Posten RowAnzahl und PreisOrt wo die Produkte aufgehoben Lager Warehousewerden - begrenzte KapazittEin physikalischer oder virtueller Produkt Product Artikel aus dem Angebot des KundenRechnung Detaillierte Aufstellung der Bestellung Invoice(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.201126 28. BAUSTEINE FR DDD Das Model aufbauen(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 27 29. DDD BAUSTEINE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 28 30. DOMAIN OBJEKT Die wichtigste Unterscheidung die Evans zwischenModellelementen macht, ist ob ein Element eine Identitt hat odernicht. Objekte mssen beispielsweise identizierbar sein, um sie voneinander unterscheiden zu knnen oder zu einem spterenZeitpunkt wieder zu nden um weitere Operationen mit diesendurchfhren zu knnen (Personen, Events, Konto, ...) Andere Objekte stellen nur die Reprsentation einer Eigenschaftdar (Farben, Tags, ...). Diese sind deniert durch alleEigenschaften.(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 29 31. DOMAIN OBJEKT Entities Identizierbare Objekte, mit Identitt Beispiel: Kunde selbst Value Objects Nicht identizierbare Objekte,ohne eigene Identitt, nicht vernderbar Beispiel: Adresse bei einem Kunden(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 30 32. DOMAIN OBJEKT Services Nicht an das Objekt gebundene Funktionen oderHandling von mehreren Objekten Beispiel:Geokoordinaten-Ermittlung fr Adresse oderberweisung zwischen zwei Konten(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 31 33. OBJEKT LEBENSZYKLUSRichtiges LebenDomain-driven DesignDatenspeicherQuelle: Rau/Kurfrst - Extbase & FLuid, OReilly(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 32 34. REPOSITORIES Technische Details(der Persistenz) sollennicht in die ULeindringen Dafr wurdenRepositorieserschaffen(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 33 35. AGGREGATE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 34 36. AGGREGATE(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 35 37. ZUSAMMENFASSUNG(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 36 38. MVC(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 37 39. MVC DomainModel RepositoryValidatorView ViewHelper Controller(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 38 40. VORTEILE VON DDDWarum kompliziert, wenn es auch einfach geht(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 39 41. VORTEILE Besseres Verstndnis der Domne Saubere Strukturierung des Codes Eleganter, schner Code Code sozusagen von jedem verstndlich Hohe Komplexitt erst so wirklich handhabbar Zustndigkeiten 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. DDD IN TYPO3FLOW3 / Extbase(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 41 43. FLOW3 Die Architektur vonFLOW3 basiert auf DDD Erstes PHP-Frameworkmit ganzheitlicherDDD Umsetzung(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 42 44. TYPO3 Extbase & Fluid Seit TYPO3 4.3 gehrt die SystemextensionExtbase (von Jochen Rau)zum Core Zusammen mit Fluid (Sebastian Kurfrst) downport vonFLOW3 DDD Konzepten Zukunftssicher durch Aufwrtskompatibilitt nach FLOW3(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 43 45. EXTBASE KICKSTARTER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 44 46. QUELLEN Weitere Informationen(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 45 47. QUELLEN - BCHER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 46 48. QUELLEN - BCHER(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 47 49. QUELLEN - DDD Domain-Driven Design Communitydomaindrivendesign.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. VIELEN DANK!FRAGEN?(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 49 51. KONTAKT - KLASSISCH Adresse: typovision* - agentur fr digitale kommunikation Belfortstr. 8 81667 Mnchen Fon: +49-89-18 92 08 70 Fax: +49-89-18 92 08 69 Email: [email protected] Web: http://www.typovision.de(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 50 52. KONTAKT - SOCIAL CHANNELS Twitter:www.twitter.com/_typovision_ www.twitter.com/PatrickLobacher Facebook: www.facebook.com/typovision XING: www.xing.com/prole/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