SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
DOMAIN-DRIVEN DESIGN
                               Modernes Softwaredesign

                                                                MUNICH




                                                 12.09.2010


                                 Patrick Lobacher (GF typovision*)

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010
ÜBER TYPOVISION
•   Patrick Lobacher
•   Geschäftsführer typovision*
•   Premium Online Business Solutions - mit TYPO3
•   Gegründet vor 16 Jahren (net-o-graphic / typofaktum)
•   Über 800 abgeschlossene Projekte, >100 mit TYPO3
•   Kunden: Vodafone, Finanzscout 24, AGIP, Contraco, Siemens, Arbeitsamt
    München, Langenscheidt, Motorola, Integralis, u.v.a.m
•   Aktiv in der Community: TYPO3camp, Certification und Documentation Team
•   Autor zahlreicher Fachbücher und Artikel:




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   2
WAS IST DDD?
                                             Eine Definition



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   3
DIE „ERFINDER“




                         JIMMY NILSSON            ERIC EVANS           MARTIN FOWLER




                               Easy setup of a TYPO3 demo site



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   4
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   5
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   6
TYPISCHE PROJEKTE?
                                 Eine kurze Zusammenfassung



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   7
TYPISCHE PROJEKTE ?




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   8
TYPISCHE PROJEKTE ?




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   9
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   10
DOMAIN MODEL
                         Die Domäne und das zugehörige Modell



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   11
DOMÄNE


•    Was ist eine Domäne?


     Ein abgrenzbares Problemfeld, Fachgebiet,
     Geschäftsfeld bzw. Einsatzbereich


     NICHT!!!!: Infrastruktur, wie Persistenz, Templating,
     Eingabe, ...


    (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   12
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   13
BEISPIEL MODELL




•    Quelle: http://www.holz-solar-haus.de/

    (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   14
MODELLIERUNG


•   Wichtigster Prozess!!!

•   Domänenexperte (Kunde) + Dienstleister (PM oder
    Programmierer)

•   Interativer, agiler Prozess

•   Ergebnis => Modell



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   15
UBIQUITOUS LANGUAGE
                             Den Turmbau von Babel verhindern



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   16
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   17
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   18
UL / MODELLIERUNG


•   In der Regel entsteht während dieser
    Modellierungs-Gespräche ein (UML)
    Diagramm, das die Eigenschaften,
    Funktionalitäten und Beziehungen
    der relevanten Bestandteile des
    Problemfeldes in Objekte verpackt
    und deren Relationen darstellt.



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   19
BAUSTEINE FÜR DDD
                                        Das Model aufbauen



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   20
DOMAIN OBJEKT




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   21
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   22
DOMAIN OBJEKT

•   Value Objects

    •   Nicht identifizierbare Objekte,
        ohne eigene Identität


    •   Beispiel: Adresse bei einem Kunden


•   Entities

    •   Identifizierbare Objekte, mit Identität


    •   Beispiel: Kunde selbst



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   23
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   24
OBJEKT LEBENSZYKLUS

                      Richtiges Leben                                     Domain-driven Design




    Quelle: Rau/Kurfürst - Extbase & FLuid, O‘Reilly


(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   25
REPOSITORIES

•   Technische Details
    (der Persistenz) sollen
    nicht in die UL
    eindringen

•   Dafür wurden
    Repositories
    erschaffen




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   26
AGGREGATE




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   27
AGGREGATE




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   28
ZUSAMMENFASSUNG




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   29
MVC




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   30
VORTEILE VON DDD
                    Warum kompliziert, wenn es auch einfach geht



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   31
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   32
DDD IN TYPO3
                                           FLOW3 / Extbase



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   33
FLOW3
•   Die Architektur von
    FLOW3 basiert auf DDD

•   Erstes PHP-Framework
    mit ganzheitlicher
    DDD Umsetzung




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   34
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   35
EXTBASE KICKSTARTER




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   36
QUELLEN
                                       Weitere Informationen



(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   37
QUELLEN - BÜCHER




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   38
QUELLEN - BÜCHER




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   39
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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   40
VIELEN DANK!
                                       FRAGEN?

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   41
ÜBER TYPOVISION

•   Adresse:

    typovision* - agentur für multimediale kommunikation

    Belfortstr. 8
    81667 München
    Deutschland

    Telefon          +49-89-18 92 08 70
    Fax              +49-89-18 92 08 69
    Email            info@typovision.de
    Web              http://www.typovision.de

(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   42
ÜBER TYPOVISION



• Geschäftsbereiche
   • TYPO3     Konzeption, Entwicklung, Programmierung, Integration
     (inkl. Extbase / Fluid / FLOW3)
   • Consulting und Projektmanagement
   • Schulung (inkl. komplettes TYPO3-Curriculum von Anfänger bis
     Fortgeschrittene und Spezialschulungen sowie Firmen- und
     Individualschulungen)
   • iPhone / iPad Webentwicklung (HTML5, CSS3, WebKit)




(c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010   43

Weitere ähnliche Inhalte

Was ist angesagt?

Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design QuicklyMariam Hakobyan
 
The Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsThe Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsNick Tune
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignNader Albert
 
Hexagonal architecture - message-oriented software design
Hexagonal architecture  - message-oriented software designHexagonal architecture  - message-oriented software design
Hexagonal architecture - message-oriented software designMatthias Noback
 
Domain driven design and model driven development
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven developmentDmitry Geyzersky
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignRyan Riley
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven DesignAndriy Buday
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichIvan Paulovich
 
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain ModelsApplying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain ModelsAlexander van Trijffel
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledNicola Costantino
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 

Was ist angesagt? (20)

Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design Quickly
 
The Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsThe Art of Discovering Bounded Contexts
The Art of Discovering Bounded Contexts
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Hexagonal architecture - message-oriented software design
Hexagonal architecture  - message-oriented software designHexagonal architecture  - message-oriented software design
Hexagonal architecture - message-oriented software design
 
Domain driven design and model driven development
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven development
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain ModelsApplying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain Models
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
 
Domain Driven Design - Strategic Design
Domain Driven Design - Strategic DesignDomain Driven Design - Strategic Design
Domain Driven Design - Strategic Design
 
Event storming
Event storming Event storming
Event storming
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 

Ähnlich wie Domain-driven design - eine Einführung

DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011die.agilen GmbH
 
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
 
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 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 - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014die.agilen GmbH
 
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
 
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
 
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 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
 
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
 
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
 
Testing TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatTesting TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatMarkus Goldbeck
 
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"Oliver Hader
 
Infrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-UmfeldInfrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-UmfeldDaniel Steiger
 
Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...
Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...
Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...Ralf Stockmann
 
SharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und GrenzenSharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und GrenzenMichael Gisiger
 
Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Traumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und FluidTraumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und FluidQbus Werbeagentur
 

Ähnlich wie Domain-driven design - eine Einführung (20)

DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
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 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
 
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 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 - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014
 
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)
 
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
 
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 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
 
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
 
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
 
Testing TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatTesting TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with Behat
 
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
 
Infrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-UmfeldInfrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-Umfeld
 
Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...
Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...
Die Bibliothek als Wolkenfabrik - Cloud-Dienste als Plattformen für digitale ...
 
TYPO3 Neos in der Praxis
TYPO3 Neos in der PraxisTYPO3 Neos in der Praxis
TYPO3 Neos in der Praxis
 
SharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und GrenzenSharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
 
Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Traumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und FluidTraumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
 

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
 

Domain-driven design - eine Einführung

  • 1. DOMAIN-DRIVEN DESIGN Modernes Softwaredesign MUNICH 12.09.2010 Patrick Lobacher (GF typovision*) (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010
  • 2. ÜBER TYPOVISION • Patrick Lobacher • Geschäftsführer typovision* • Premium Online Business Solutions - mit TYPO3 • Gegründet vor 16 Jahren (net-o-graphic / typofaktum) • Über 800 abgeschlossene Projekte, >100 mit TYPO3 • Kunden: Vodafone, Finanzscout 24, AGIP, Contraco, Siemens, Arbeitsamt München, Langenscheidt, Motorola, Integralis, u.v.a.m • Aktiv in der Community: TYPO3camp, Certification und Documentation Team • Autor zahlreicher Fachbücher und Artikel: (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 2
  • 3. WAS IST DDD? Eine Definition (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 3
  • 4. DIE „ERFINDER“ JIMMY NILSSON ERIC EVANS MARTIN FOWLER Easy setup of a TYPO3 demo site (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 4
  • 5. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 5
  • 6. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 6
  • 7. TYPISCHE PROJEKTE? Eine kurze Zusammenfassung (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 7
  • 8. TYPISCHE PROJEKTE ? (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 8
  • 9. TYPISCHE PROJEKTE ? (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 9
  • 10. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 10
  • 11. DOMAIN MODEL Die Domäne und das zugehörige Modell (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 11
  • 12. DOMÄNE • Was ist eine Domäne? Ein abgrenzbares Problemfeld, Fachgebiet, Geschäftsfeld bzw. Einsatzbereich NICHT!!!!: Infrastruktur, wie Persistenz, Templating, Eingabe, ... (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 12
  • 13. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 13
  • 14. BEISPIEL MODELL • Quelle: http://www.holz-solar-haus.de/ (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 14
  • 15. MODELLIERUNG • Wichtigster Prozess!!! • Domänenexperte (Kunde) + Dienstleister (PM oder Programmierer) • Interativer, agiler Prozess • Ergebnis => Modell (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 15
  • 16. UBIQUITOUS LANGUAGE Den Turmbau von Babel verhindern (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 16
  • 17. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 17
  • 18. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 18
  • 19. UL / MODELLIERUNG • In der Regel entsteht während dieser Modellierungs-Gespräche ein (UML) Diagramm, das die Eigenschaften, Funktionalitäten und Beziehungen der relevanten Bestandteile des Problemfeldes in Objekte verpackt und deren Relationen darstellt. (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 19
  • 20. BAUSTEINE FÜR DDD Das Model aufbauen (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 20
  • 21. DOMAIN OBJEKT (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 21
  • 22. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 22
  • 23. DOMAIN OBJEKT • Value Objects • Nicht identifizierbare Objekte, ohne eigene Identität • Beispiel: Adresse bei einem Kunden • Entities • Identifizierbare Objekte, mit Identität • Beispiel: Kunde selbst (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 23
  • 24. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 24
  • 25. OBJEKT LEBENSZYKLUS Richtiges Leben Domain-driven Design Quelle: Rau/Kurfürst - Extbase & FLuid, O‘Reilly (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 25
  • 26. REPOSITORIES • Technische Details (der Persistenz) sollen nicht in die UL eindringen • Dafür wurden Repositories erschaffen (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 26
  • 27. AGGREGATE (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 27
  • 28. AGGREGATE (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 28
  • 29. ZUSAMMENFASSUNG (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 29
  • 30. MVC (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 30
  • 31. VORTEILE VON DDD Warum kompliziert, wenn es auch einfach geht (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 31
  • 32. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 32
  • 33. DDD IN TYPO3 FLOW3 / Extbase (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 33
  • 34. FLOW3 • Die Architektur von FLOW3 basiert auf DDD • Erstes PHP-Framework mit ganzheitlicher DDD Umsetzung (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 34
  • 35. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 35
  • 36. EXTBASE KICKSTARTER (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 36
  • 37. QUELLEN Weitere Informationen (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 37
  • 38. QUELLEN - BÜCHER (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 38
  • 39. QUELLEN - BÜCHER (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 39
  • 40. 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) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 40
  • 41. VIELEN DANK! FRAGEN? (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 41
  • 42. ÜBER TYPOVISION • Adresse: typovision* - agentur für multimediale kommunikation Belfortstr. 8 81667 München Deutschland Telefon +49-89-18 92 08 70 Fax +49-89-18 92 08 69 Email info@typovision.de Web http://www.typovision.de (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 42
  • 43. ÜBER TYPOVISION • Geschäftsbereiche • TYPO3 Konzeption, Entwicklung, Programmierung, Integration (inkl. Extbase / Fluid / FLOW3) • Consulting und Projektmanagement • Schulung (inkl. komplettes TYPO3-Curriculum von Anfänger bis Fortgeschrittene und Spezialschulungen sowie Firmen- und Individualschulungen) • iPhone / iPad Webentwicklung (HTML5, CSS3, WebKit) (c) 2010 - typovision* | TYPO3camp | Domain-driven Design | Patrick Lobacher | www.typovision.de | 12.09.2010 43