Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Its all about the domain honey

601 views

Published on

Beim Bauen von Software werden tolle Technologien, Programmiersprachen und Tools eingesetzt. Das ist gut und richtig. Aber leider wird dabei oft aus den Augen verloren, dass das Entscheidende nicht die Technik, sondern die *Fachlichkeit* ist. Wenn wir in der Software nicht das fachliche Modell abbilden, dann wird sie unseren Anwendern nicht bei Ihrer Arbeit helfen. Davor schützt uns keine Technologie der Welt. Um das zu verhindern, zeigen wir in diesem Vortrag, wie man die Architektur so baut, dass sie die Fachlichkeit darstellt und wie Domain Driven Design (DDD) und Microservices uns dabei helfen können.

Published in: Software
  • DOWNLOAD FULL eBOOK INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookeBOOK Crime, eeBOOK Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Its all about the domain honey

  1. 1. WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG IT’S ALL ABOUT THE DOMAIN, HONEY - Erfahrungen aus 10 Jahren Domain Driven Design Dr. Carola Lilienthal, cl@wps.de, @cairolali www.wps.de
  2. 2. 30.03.2017 //// Seite 3WPS - Workplace Solutions GmbH Software- Architektur Anforderungs- ermittlung Leitstand und Interaktion Individual- software Business-Software, die Spaß macht! WPS – Workplace Solutions GmbH
  3. 3. 30.03.2017 //// Seite 5WPS - Workplace Solutions GmbH Dr. Carola Lilienthal Geschäftsführerin cl@wps.de www.wps.de +49 40 229 499-0 +49 40 229 499-299 +49 170 184 77 11 Diplom-Informatikerin @cairolali a @cairolali cl@wps.de www.llsa.de
  4. 4. Schulung Domain-Driven Design Modul für Advanced Level wps.de/ddd
  5. 5. 30.03.2017 //// Seite 7WPS - Workplace Solutions GmbH WIR SIND PROGRAMMIERER...
  6. 6. 30.03.2017 //// Seite 8WPS - Workplace Solutions GmbH ... UND WIR LIEBEN TECHNIK
  7. 7. 30.03.2017 //// Seite 9WPS - Workplace Solutions GmbH SOFTWARE != SELBSTZWECK Software ist ein Mittel zum Zweck Kein Selbstzweck Das Ziel ist das Ziel
  8. 8. 30.03.2017 //// Seite 10WPS - Workplace Solutions GmbH SOFTWARE UND DOMÄNE Schreibe Software, die tief in der Domäne verwurzelt ist! Software Domäne
  9. 9. 30.03.2017 //// Seite 11WPS - Workplace Solutions GmbH DOMAIN DRIVEN DESIGN ANWENDEN  Zu Beginn eines Softwareprojekts:  Fokussiere die Domäne in der die Software eingesetzt wird  Wie erschafft man Software, die zu einer Domäne passt?  Begreife Software als Reflektion der Domäne  Lasse Kernkonzepte und Elemente der Domäne in die Software einfließen  Realisiere ihre Zusammenhänge  Erstelle ein Domänenmodell
  10. 10. 30.03.2017 //// Seite 12WPS - Workplace Solutions GmbH TECHNISCHE SPRACHE X Class Database Server Client O/R-Mapping Inheritance A B Method Interface Linux Windows Eclipse Visual Studio
  11. 11. 30.03.2017 //// Seite 13WPS - Workplace Solutions GmbH DOMÄNEN-SPRACHE Container Containernummer 4300 Kran Twistlock Konnossement Beispiel: Hafen
  12. 12. 30.03.2017 //// Seite 14WPS - Workplace Solutions GmbH Fach- sprache Techno Babble ? UBIQUITOUS LANGUAGE
  13. 13. 30.03.2017 //// Seite 15WPS - Workplace Solutions GmbH Fach- sprache Techno Babble Fach- sprache UBIQUITOUS LANGUAGE
  14. 14. 30.03.2017 //// Seite 16WPS - Workplace Solutions GmbH Fach- sprache Techno Babble UBIQUITOUS LANGUAGE
  15. 15. 30.03.2017 //// Seite 17WPS - Workplace Solutions GmbH Techno Babble Fach- sprache UBIQUITOUS LANGUAGE
  16. 16. 30.03.2017 //// Seite 18WPS - Workplace Solutions GmbH Fach- sprache { Techno Babble } ? UBIQUITOUS LANGUAGE
  17. 17. 30.03.2017 //// Seite 19WPS - Workplace Solutions GmbH Fach- sprache { Fach- sprache } UBIQUITOUS LANGUAGE
  18. 18. 30.03.2017 //// Seite 20WPS - Workplace Solutions GmbH UBIQUITOUS LANGUAGE  Verwende die gemeinsame Sprache in..  der Kommunikation  mündlich  schriftlich  grafisch  im Code  Im Grunde genommen überall  Deswegen nennt sich die Fachsprache allgegenwärtig.
  19. 19. 30.03.2017 //// Seite 21WPS - Workplace Solutions GmbH SPRACHE TAUCHT NICHT EINFACH AUF  Es braucht Wochen bis Monate...  harter Arbeit  und scharfem Fokus  … um die Schlüsselkonzepte offenzulegen.  Die ersten Wörter einer allgemeinen Fachsprache kommen üblicherweise direkt aus der Domäne  Im Laufe der Entwicklung werden neue Begriffe definiert und hinzugefügt
  20. 20. 30.03.2017 //// Seite 22WPS - Workplace Solutions GmbH DOMÄNEN-SPRACHE Brett König Figuren Spieler Schachuhr
  21. 21. 30.03.2017 //// Seite 23WPS - Workplace Solutions GmbH ALLGEGENWÄRTIGE FACHSPRACHE Brett Figuren Spieler Nichtmenschlicher Spieler
  22. 22. 30.03.2017 //// Seite 24WPS - Workplace Solutions GmbH SPRACHEN SIND LEBENDIG  Experimentiere mit alternativen Ausdrucksformen  Das Modell und die Sprache entwickeln sich weiter  Überarbeite dann den Code  Benenne Klassen, Methoden, Module  Entspreche dem neuen Modell  Eine Sprache will gesprochen werden:  Beseitige Unklarheiten durch Konversation
  23. 23. 30.03.2017 //// Seite 25WPS - Workplace Solutions GmbH
  24. 24. 30.03.2017 //// Seite 26WPS - Workplace Solutions GmbH GLOSSAR  Fachsprache der Benutzer/Ubiquitous Language • bereits existierende Begriffe • rekonstruierte Begriffe • neue Begriffsbildungen •Wer tut was damit wozu?  Kernkonzepte  Wichtiger am Anfang des Projektes  Oft Wegwerfprodukt
  25. 25. 30.03.2017 //// Seite 27WPS - Workplace Solutions GmbH WIE LERNEN WIR DIE FACHLICHKEIT?  Durch die Fachexperten (domain experts)  Sie haben das Wissen  Worum es bei ihrer Arbeit geht  Wo die Software sie unterstützen kann  Auch wenn sie das Wissen nicht selbständig aufschreiben bzw. abstrahieren können  Wer die Fachlichkeit nicht versteht, kann ihr nicht helfen  Softwareentwickler und Fachexperten bilden zusammen das Team
  26. 26. 30.03.2017 //// Seite 28WPS - Workplace Solutions GmbH WIE KOMMEN WIR AN DAS WISSEN DER FACHEXPERTEN? Welche Techniken gibt es?  Interviews  Use Cases + Szenarien  Workshops  Event Storming  Domain Storytelling Das wollen wir extrahieren! Fach- wissen
  27. 27. 30.03.2017 //// Seite 29WPS - Workplace Solutions GmbH WORKSHOPS MIT ANWENDERN UND PRODUCT OWNERN “Georgia?” by The Library of Congress, flickr.com • Teilnehmer aus verschiedenen Bereichen (Business, IT, Management, …) • ein Moderator für den Workshop  direktes Feedback von allen Beteiligten
  28. 28. 30.03.2017 //// Seite 30WPS - Workplace Solutions GmbH EVENT STORMING  Eine Methode um Geschäftsprozesse zu modellieren Modelliert werden: Domain Events Commands Acteure Aggregate
  29. 29. 30.03.2017 //// Seite 31WPS - Workplace Solutions GmbH DOMAIN STORYTELLING www.domainstorytelling.org Modelliert werden: Akteure Gegenstände Handlungen
  30. 30. 30.03.2017 //// Seite 32WPS - Workplace Solutions GmbH
  31. 31. 30.03.2017 //// Seite 33WPS - Workplace Solutions GmbH TAKTISCHES UND STRATEGISCHES MODELLIEREN  DDD gibt Anleitung für Modellierung im Großen und im Kleinen  Strategisches Modellieren  Teile die Domäne in getrennte Bounded Contexts auf  Jeder BC hat sein eigenes Fachmodell und seine eigene Allgegenwärtige Sprache  Context Mapping hilft die Beziehungen zwischen Bounded Contexts zu verstehen  Taktisches Modellieren  Innerhalb eines Bounded Context  Building Blocks: Entity, Value Object, Aggregate, Service, Repository, Factory
  32. 32. 30.03.2017 //// Seite 34WPS - Workplace Solutions GmbH GROSSE PROJEKTE  Erfordern mehrere Teams  Entwicklung findet parallel statt  Jedes Team korrespondiert mit einem Teil des Modells  Ein großes Modell?
  33. 33. 30.03.2017 //// Seite 35WPS - Workplace Solutions GmbH DAS GROSSE VEREINHEITLICHTE MODELL  Umfasst die vollständige Domäne eines Unternehmens  Ein schwer erreichbares Ideal  Oft nicht lohnenswert anzuvisieren Hoher Koordinationsaufwand in Teams Führt oft zu einem big ball of mud
  34. 34. 30.03.2017 //// Seite 36WPS - Workplace Solutions GmbH KONTEXTGRENZEN (BOUNDED CONTEXT)  Jedes Modell hat einen Kontext  Kontext = Grundsätzliche Voraussetzungen, damit Begriffe eine bestimmte Bedeutung erhalten  Wird ein Modell aufgespalten, so ist für jedes Teilmodell eine Kontextdefinition erforderlich  Setze explizite Grenzen in der…  Organisation von Teams  Benutzung von Teilen der Applikation  Codebasis  Entwicklung von Datenbank-Schemas
  35. 35. 30.03.2017 //// Seite 37WPS - Workplace Solutions GmbH WIE SCHNEIDE ICH MEINE DOMÄNE?  Nach Unterschieden in der Verwendung von Begriffen der Ubiquitous Language  Nach Grenzen im Geschäftsprozess, die die Domänenexperten beschreiben  Nach Abteilungen in der Organisation bzw. Gruppen von Domänenexperten  NICHT: Nach Entities oder Aggregaten!
  36. 36. 30.03.2017 //// Seite 38WPS - Workplace Solutions GmbH BEISPIEL – BOUNDED CONTEXTE NACH ABTEILUNG UND NACH PROZESS VERTRIEB Buchhaltung HR
  37. 37. 30.03.2017 //// Seite 39WPS - Workplace Solutions GmbH LIVING IN A BOX  Erhalte die Konsistenz innerhalb der Grenzen  Keine Ablenkung durch äußere Angelegenheiten  Freie Gestaltung eines Teilmodells durch das zugehörige Team  Kenne die Restriktionen  Bleibe innerhalb der Modellgrenzen
  38. 38. 30.03.2017 //// Seite 40WPS - Workplace Solutions GmbH JEDER BOUNDED CONTEXT HAT SEIN EIGENES MODELL
  39. 39. 30.03.2017 //// Seite 41WPS - Workplace Solutions GmbH  Subdomänen  Kern (Core Domain)  Unterstützende (Supporting Domain)  Allgemeine (Generic Domain)  Context Mapping  Shared Kernel  Customer/Supplier  Open-Host-Service  Published Language  Separate Ways  Anticorruption Layer STRATEGISCHES DESIGN – WEITERE BEGRIFFE
  40. 40. 30.03.2017 //// Seite 42WPS - Workplace Solutions GmbH DER PREIS FÜR DOMÄNENMODELLE  Zusätzliche Arbeit  Definition der Modellgrenzen  Definition der Beziehungen zwischen verschiedenen Modellen (Context Mapping)  Abbildungen zwischen verschiedenen Modellen  Objekte können nicht zwischen den BC transportiert werden
  41. 41. 30.03.2017 //// Seite 43WPS - Workplace Solutions GmbH WAS WIR NICHT BAUEN WOLLEN ✘ ANEMIC DOMAIN MODEL  „blutarme“ fachliche Objekte  Schnittstelle ohne Aussagekraft  aus Gettern/Settern  Viele String Parameter  Eigentliche Fachlichkeit außerhalb Entities + Value Objects in Services oder im UI  Viele Util, Helper und Manager Klassen
  42. 42. 30.03.2017 //// Seite 44WPS - Workplace Solutions GmbH ANEMIC  FEHLENDE ROBUSTHEIT  Designschulden  Unklarer, schwer verständlicher Entwurf  Verteilte Fachlichkeit  Copy & Paste - Programmierung  Teure Wartung  Duplizierter Code  Viele Refactorings  Schlechte Testbarkeit
  43. 43. 30.03.2017 //// Seite 45WPS - Workplace Solutions GmbH UNKLARE STRUKTUREN IN DER ACHITEKTUR
  44. 44. 30.03.2017 //// Seite 46WPS - Workplace Solutions GmbH GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM 463 classes from 10 different domain-specific modules
  45. 45. 30.03.2017 //// Seite 47WPS - Workplace Solutions GmbH
  46. 46. 30.03.2017 //// Seite 48WPS - Workplace Solutions GmbH 119 Klassen aus 4 Komponenten + 28 weitere Klassen
  47. 47. 30.03.2017 //// Seite 49WPS - Workplace Solutions GmbH Große Zyklen sichtbar machen 327 Klassen aus 8 Komponenten brauchen sich gegenseitig
  48. 48. 30.03.2017 //// Seite 50WPS - Workplace Solutions GmbH
  49. 49. 30.03.2017 //// Seite 51WPS - Workplace Solutions GmbH
  50. 50. 30.03.2017 //// Seite 52WPS - Workplace Solutions GmbH Dr. Carola Lilienthal Geschäftsführerin cl@wps.de www.wps.de +49 40 229 499-0 +49 40 229 499-299 +49 170 184 77 11 Diplom-Informatikerin @cairolali a @cairolali cl@wps.de www.llsa.de Vielen Dank für Ihre Aufmerksamkeit!

×