SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
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
Ü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
Ü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
Problem




                                                  Lösung

(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   4
Problem



                      DOMAIN DRIVEN
                                                            DESIGN

                                                  Lösung

(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   4
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
DOMAIN DRIVEN DESIGN
                  Kommunikation                                           Modell


                      Explizitheit                                      Ignoranz


                                       Objektorientierung


(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   6
WAS IST DDD?
                                              Eine Definition



(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   7
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
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
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
TYPISCHE PROJEKTE?
                                  Eine kurze Zusammenfassung



(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   11
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ü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
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
SCHICHTARCHITEKTUR




(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   16
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
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
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
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
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
BOUNDED CONTEXT




                                      Bestellabwicklung




   Lagerhaltung                                                                     Rechnungen
                                       Bounded Context


(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   22
UBIQUITOUS LANGUAGE
                             Den Turmbau von Babel verhindern



(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   23
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
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
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
BAUSTEINE FÜR DDD
                                         Das Model aufbauen



(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   27
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 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
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
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
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
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
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

                                                                                    Model

                                                                                 Repository

                                                                                  Validator


                                                                            View

                                                                     ViewHelper

                                                                       Controller

(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   38
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
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
DDD IN TYPO3
                                            FLOW3 / Extbase



(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   41
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
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
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 Lobacher | www.typovision.de | 22.05.2011   45
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.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
VIELEN DANK!
                                        FRAGEN?

(c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011   49
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
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

Weitere ähnliche Inhalte

Ähnlich wie DDD - Domain Driven Design - TYPO3camp Stuttgart 2011

Extbase & Fluid Einführung - MTUG - Patrick Lobacher
Extbase & Fluid Einführung - MTUG - Patrick LobacherExtbase & Fluid Einführung - MTUG - Patrick Lobacher
Extbase & Fluid Einführung - MTUG - Patrick Lobacherdie.agilen GmbH
 
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhoneWebapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhonedie.agilen GmbH
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere PortalFrank Rahn
 
Testing TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatTesting TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatMarkus Goldbeck
 
Kundenerziehung - TYPO3camp Munich 2011 - Patrick Lobacher
Kundenerziehung - TYPO3camp Munich 2011 - Patrick LobacherKundenerziehung - TYPO3camp Munich 2011 - Patrick Lobacher
Kundenerziehung - TYPO3camp Munich 2011 - Patrick Lobacherdie.agilen GmbH
 
TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013die.agilen GmbH
 
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)die.agilen GmbH
 
Typo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenTypo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenMokhtar Slama
 
Typo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im ÜberblickTypo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im Überblickdie.agilen GmbH
 
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014die.agilen GmbH
 
DOAG SIG Development: BI Publisher and Oracle ADF
DOAG SIG Development: BI Publisher and Oracle ADFDOAG SIG Development: BI Publisher and Oracle ADF
DOAG SIG Development: BI Publisher and Oracle ADFUlrich Gerkmann-Bartels
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)die.agilen GmbH
 
Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015die.agilen GmbH
 
TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014die.agilen GmbH
 
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 SchuldenCarola Lilienthal
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der PraxisMichael Mirold
 
Extreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating EngineExtreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating Enginedie.agilen GmbH
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
jQuery Mobile Kompakt - das Kompendium - über 150 Seiten (typovision)
jQuery Mobile Kompakt  - das Kompendium - über 150 Seiten (typovision)jQuery Mobile Kompakt  - das Kompendium - über 150 Seiten (typovision)
jQuery Mobile Kompakt - das Kompendium - über 150 Seiten (typovision)die.agilen GmbH
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 

Ähnlich wie DDD - Domain Driven Design - TYPO3camp Stuttgart 2011 (20)

Extbase & Fluid Einführung - MTUG - Patrick Lobacher
Extbase & Fluid Einführung - MTUG - Patrick LobacherExtbase & Fluid Einführung - MTUG - Patrick Lobacher
Extbase & Fluid Einführung - MTUG - Patrick Lobacher
 
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhoneWebapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
 
Testing TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatTesting TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with Behat
 
Kundenerziehung - TYPO3camp Munich 2011 - Patrick Lobacher
Kundenerziehung - TYPO3camp Munich 2011 - Patrick LobacherKundenerziehung - TYPO3camp Munich 2011 - Patrick Lobacher
Kundenerziehung - TYPO3camp Munich 2011 - Patrick Lobacher
 
TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013TYPO3 Neos - ein technischer Überblick - DWX 2013
TYPO3 Neos - ein technischer Überblick - DWX 2013
 
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
 
Typo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungenTypo3 cms-6-0-die-neuerungen
Typo3 cms-6-0-die-neuerungen
 
Typo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im ÜberblickTypo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im Überblick
 
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
 
DOAG SIG Development: BI Publisher and Oracle ADF
DOAG SIG Development: BI Publisher and Oracle ADFDOAG SIG Development: BI Publisher and Oracle ADF
DOAG SIG Development: BI Publisher and Oracle ADF
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)
 
Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015Neos CMS - Das CMS der nächsten Generation - IPC 2015
Neos CMS - Das CMS der nächsten Generation - IPC 2015
 
TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014
 
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
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der Praxis
 
Extreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating EngineExtreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating Engine
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
jQuery Mobile Kompakt - das Kompendium - über 150 Seiten (typovision)
jQuery Mobile Kompakt  - das Kompendium - über 150 Seiten (typovision)jQuery Mobile Kompakt  - das Kompendium - über 150 Seiten (typovision)
jQuery Mobile Kompakt - das Kompendium - über 150 Seiten (typovision)
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 

Mehr von die.agilen GmbH

LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)die.agilen GmbH
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...die.agilen GmbH
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...die.agilen GmbH
 
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017die.agilen GmbH
 
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...die.agilen GmbH
 
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...die.agilen GmbH
 
Roman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKRRoman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKRdie.agilen GmbH
 
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...die.agilen GmbH
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkdie.agilen GmbH
 
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / BerlinAgile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlindie.agilen GmbH
 
The agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical applicationThe agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical applicationdie.agilen GmbH
 
How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...die.agilen GmbH
 
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...die.agilen GmbH
 
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - PluswerkDWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerkdie.agilen GmbH
 
Innovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - PluswerkInnovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - Pluswerkdie.agilen GmbH
 
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...die.agilen GmbH
 
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...die.agilen GmbH
 
Innovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerkInnovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerkdie.agilen GmbH
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...die.agilen GmbH
 
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkTYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkdie.agilen GmbH
 

Mehr von die.agilen GmbH (20)

LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
LEGO SERIOUS PLAY für Manager (Management 3.0 Gathering 2018)
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
 
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
Agiles Zielmanagement und modernes Leadership mit Objectives und Key Results ...
 
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
Innovationsmotoren Design Thinking, Lean Startup, Sprint & Co. - IT Tage 2017
 
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
Agile Leadership and Goal Management with Objectives & Key Results (OKRs) | A...
 
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
Die Entwicklung von Objectives und Key Results in Europa | 16.08.2017 | OKR F...
 
Roman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKRRoman Rackwitz - Gamification und OKR
Roman Rackwitz - Gamification und OKR
 
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
Die Entwicklung von Objectives und Key Results (OKR) in Europa | OKR Meetup M...
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
 
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / BerlinAgile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
Agile Mitarbeiterführung mit OKRs / Manage Agile 2017 / Berlin
 
The agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical applicationThe agile enterprise - Digital Transformation as a practical application
The agile enterprise - Digital Transformation as a practical application
 
How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...How leadership of employees via Objectives and Key Results (OKR) speeds up th...
How leadership of employees via Objectives and Key Results (OKR) speeds up th...
 
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
4DX - Die 4 Disziplinen der Umsetzung: Strategien sicher umsetzen und Ziele e...
 
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - PluswerkDWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
DWX 2016 - Atomic Design – Frontend und Design im RWD-Zeitalter - Pluswerk
 
Innovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - PluswerkInnovationsmotoren für IoT - DWX 2016 - Pluswerk
Innovationsmotoren für IoT - DWX 2016 - Pluswerk
 
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
OKR und BVB - Warum OKR der bessere Cristiano Ronaldo ist oder warum Scrum ni...
 
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...30 Jahre Scrum - alles agil, alles gut?  Auf dem Weg zum digitalen Unternehme...
30 Jahre Scrum - alles agil, alles gut? Auf dem Weg zum digitalen Unternehme...
 
Innovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerkInnovationsmotor Design Thinking - pluswerk
Innovationsmotor Design Thinking - pluswerk
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - webina...
 
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkTYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
 

DDD - Domain Driven Design - TYPO3camp Stuttgart 2011

  • 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. Ü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. Ü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. Problem Lösung (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 4
  • 5. Problem DOMAIN DRIVEN DESIGN Lösung (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 4
  • 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. DOMAIN DRIVEN DESIGN Kommunikation Modell Explizitheit Ignoranz Objektorientierung (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 6
  • 8. WAS IST DDD? Eine Definition (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 7
  • 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. 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. 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. 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 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. 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. SCHICHTARCHITEKTUR (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 16
  • 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. 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. 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. 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. 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. BOUNDED CONTEXT Bestellabwicklung 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 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. 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. 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. BAUSTEINE FÜR 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 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. 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. 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. 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. 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. 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 Domain Model Repository Validator View ViewHelper Controller (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 38
  • 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. 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. DDD IN TYPO3 FLOW3 / Extbase (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 41
  • 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. 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. 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 - BÜCHER (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 46
  • 48. QUELLEN - BÜCHER (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 47
  • 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. VIELEN DANK! FRAGEN? (c) 2011 - typovision* | Domain-driven Design | Patrick Lobacher | www.typovision.de | 22.05.2011 49
  • 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. 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