Domain-Driven Design (Tutorial)

Domain-Driven Design (Tutorial)

Tutorial »Domain-Driven Design« last held at Software Architecture Summit 2020

575ca492bac55e895d0e1c86f7d709fe?s=128

Henning Schwentner

September 14, 2020
Tweet

Transcript

  1. Starring With Directed by In the role of Also Starring

  2. None
  3. None
  4. None
  5. None
  6. Infrastruktur:

  7. Remote Etiquette: * Video on * Real name

  8. »I can’t hear you.« »I want to say something.«

  9. Diskussion erwünscht J

  10. @hschwentner Handout and case study: https://speakerdeck.com/wps/domain- driven-design-unterlagen-kurz

  11. @hschwentner Domain-Driven Design

  12. @hschwentner #dddesign

  13. -DR IVEN D ESIG N

  14. None
  15. None
  16. None
  17. None
  18. None
  19. »Business-Software die Spaß macht«

  20. None
  21. None
  22. @hschwentner Zeitplan

  23. Workshop Workshop Workshop Workshop Vormittag Nachmittag Nicht remote

  24. Vormittag Nachmittag Work shop Work shop Work shop Work shop

    Work shop Work shop Work shop
  25. @hschwentner Inhalt

  26. None
  27. @hschwentner #unabsteigbar

  28. None
  29. None
  30. None
  31. None
  32. Workshop Domain-Driven Design konkret wps.de/ddd

  33. Ubiquitous Language Building Blocks Domain Event Aggregate Entity Value Object

    Bounded Context Strategic Design Context Mapping Collaborative Modeling Domain Expert Event Storming Modeling in Code Domain Storytelling Core Domain
  34. Microservices CQRS Hexagonal Architecture Agile Event Sourcing Extreme Programming Scrum

    Cloud Self-Contained Sytems Verticals Clean Architecture DevOps AWS Azure
  35. @hschwentner Aufbau

  36. None
  37. DOMÄNE DOMÄNE

  38. None
  39. @hschwentner Du

  40. Programmiersprachen Fragen Mein Leben als Entwickler Erfahrungen mit DDD Wünsche

    an das Training iSAQB-Module
  41. None
  42. None
  43. None
  44. None
  45. Grafik: Robert Gloth/Wikipedia

  46. None
  47. Foto: Serge Melki/Wikipedia

  48. Foto: Public Domain/Wikipedia

  49. None
  50. @hschwentner How is that supposed to work?

  51. None
  52. None
  53. Foto: Thorsten Bätge/Wikipedia

  54. None
  55. Detail: Tiefenzahl

  56. Foto: Afrank99/Wikipedia

  57. Foto: Henning Schwentner

  58. None
  59. None
  60. None
  61. None
  62. None
  63. LEGT NAUTIKER KAPITÄN FRAGT NACH 7 SCHIFFS- SILHOUETTE AUF PEILDIENST

    PEILSCHIFF TIEFE PEILT 1 SENDET 2 AN BERECHNET 3 ERZ EUGT 4 SENDET 5 PEILPLAN AN VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE UND FINDET 9 MELDET AN 6 ROUTE ROUTE PEILPLAN PEILPLAN TIEFEN- ZAHLEN ROUTE TIEFENLINIEN
  64. @hschwentner Is There An App For It?

  65. None
  66. None
  67. CYBER

  68. None
  69. None
  70. None
  71. None
  72. None
  73. None
  74. @hschwentner Software != Selbstzweck

  75. None
  76. ?

  77. None
  78. WICHTIG!

  79. None
  80. So#ware Domäne

  81. None
  82. None
  83. Foto: Rosie the Riveter/Wikimedia/CC-PD-Mark

  84. Domain Knowledge Foto: Rosie the Riveter/Wikimedia/CC-PD-Mark

  85. Collaborative Modeling

  86. Domain Expert Developer

  87. Knowledge crunching

  88. None
  89. @hschwentner Methods

  90. None
  91. http://www.domainstorytelling.or

  92. LANGUAGE

  93. Fach- sprache Domain Expert Developer

  94. None
  95. Ludwig Wittgenstein »Wovon man nicht sprechen kann, darüber muss man

    schweigen.«
  96. Tiefenzahl Maßstab Silhouette Markierung Peilplan verschieben berechnen Auf Grund gelaufen

    gelb
  97. Ubiquitous Language

  98. Jubikjutuss Lengwitsch

  99. LEGT NAUTIKER KAPITÄN FRAGT NACH 7 SCHIFFS- SILHOUETTE AUF PEILDIENST

    PEILSCHIFF TIEFE PEILT 1 SENDET 2 AN BERECHNET 3 ERZ EUGT 4 SENDET 5 PEILPLAN AN VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE UND FINDET 9 MELDET AN 6 ROUTE ROUTE PEILPLAN PEILPLAN TIEFEN- ZAHLEN ROUTE TIEFENLINIEN
  100. SMALL

  101. None
  102. None
  103. class Silhouette { //... }

  104. None
  105. class Silhouette { public void verschiebeUm(Laenge l) //... }

  106. None
  107. class Silhouette { public void verschiebeUm(Laenge l) //... public void

    dreheUm(Winkel w) //... }
  108. Erich Gamma “Program to an interface, not to an implementation”

  109. public class Silhouette { public void setPosition(Position p) //... }

  110. WARNING SETTERS CAUSE MODEL ANEMIA

  111. SETTER = Denglisch für „set…“-Operation

  112. VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE UND FINDET ROUTE NAUTIKER

    <<En$ty>> Silhoue(e verschiebe() drehe()
  113. BIG

  114. None
  115. None
  116. None
  117. None
  118. None
  119. None
  120. Bounded Context

  121. None
  122. LEGT NAUTIKER KAPITÄN FRAGT NACH 7 SCHIFFS- SILHOUETTE AUF PEILDIENST

    PEILSCHIFF TIEFE PEILT 1 SENDET 2 AN BERECHNET 3 ERZ EUGT 4 SENDET 5 PEILPLAN AN VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE UND FINDET 9 MELDET AN 6 ROUTE ROUTE PEILPLAN PEILPLAN TIEFEN- ZAHLEN ROUTE TIEFENLINIEN TIEFEN- MESSUNG MANÖVER- PLANUNG
  123. TIDE- VORHER- SAGE MANÖVER- PLANUNG TIEFEN- MESSUNG

  124. None
  125. None
  126. WPS – Workplace Solutions #dddkonkret www.wps.de COLLABORATIVE MODELING Domain-Driven Design

    konkret
  127. 16.09.20 //// Seite 183 WPS – Workplace Solutions INHALT DOMÄNE

    DOMÄNE
  128. None
  129. @hschwentner Tools

  130. None
  131. None
  132. None
  133. Infrastructure: https://www.wps.de/modeler/ www.wps.de/modeler/ github.com/WPS/domain-story-modeler

  134. schnell intensiv ultra leichtgewichtig macht Spaß in die Domäne stürzen

    an die Grenzen gehen den Anwendungsfall erleben EVENT STORMING @JoernKoch
  135. EVENT STORMING @JoernKoch

  136. EVENT STORMING - Wer hat‘s erfunden? Alberto Brandolini @ziobrando http://eventstorming.com

  137. None
  138. None
  139. None
  140. None
  141. None
  142. None
  143. None
  144. @hschwentner One Man One Marker

  145. @hschwentner One (Wo)Man One Marker

  146. None
  147. None
  148. None
  149. Once upon a time… @JoernKoch

  150. 1 gutes Beispiel ist besser als kein Beispiel »Denn manchmal

    sind drei gute Beispiele besser für das Verständnis der Anforderungen als eine schlechte Abstrak<on.« Peter Hruschka in Busines Analysis und Requirements Engineering, S.102, Hanser, 2014
  151. None
  152. þ Arbeiten þ Schlafen þ Arbeiten þ Schlafen

  153. None
  154. BEISPIEL

  155. SZENARIO: MANÖVERSIMULATION IM HAFEN PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT

    TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT
  156. EVENT Ein FACHLICH RELEVANTES EREIGNIS Hier ist etwas geschehen, das

    uns fachlich EIN STÜCK WEITER gebracht hat. PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT
  157. ORANGER STICKIE In VERGANGENHEITSFORM Tipp: In GROSSBUCHSTABEN EVENT PEIL- POSITION

    ERREICHT TIEFE »10M« GEPEILT TIEFENZAHL »ROT« GEFÄRBT
  158. PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT KONKRET WERDEN! Andere Details

    = andere Geschichte EVENT TIEFENZAHL »ROT« GEFÄRBT
  159. SZENARIO: MANÖVERSIMULATION IM HAFEN PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT

    TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM
  160. SZENARIO: MANÖVERSIMULATION IM HAFEN PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT

    TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM
  161. SZENARIO: MANÖVERSIMULATION IM HAFEN PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT

    TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM STURMFLUT ERWARTET ALLE LIEGEPLÄTZ E BELEGT PEILSCHIFF AUF GRUND GELAUFEN
  162. SZENARIO: MANÖVERSIMULATION IM HAFEN PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT

    TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM BEI WELCHEN TIEFEN? HIER PASSAGE BERÜCK- SICHTI- GEN!
  163. Offene FRAGE oder PROBLEM PINKER STICKIE Kurz in Prosa beschreiben.

    In die Nähe des betroffenen Events hängen! HOTSPOT PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT BEI WELCHEN TIEFEN?
  164. FERTIG!

  165. BIG PICTURE EVENT STORMING PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT

    TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM STURMFLUT ERWARTET ALLE LIEGEPLÄTZ E BELEGT PEILSCHIFF AUF GRUND GELAUFEN BEI WELCHEN TIEFEN? HIER PASSAGE BERÜCK- SICHTI- GEN!
  166. None
  167. LITERATUR Ganzes Buch (in Arbeit) Kapitel 7 http://ziobrando.blogspot.de/ http://eventstorming.com/ BLOG:

  168. None
  169. None
  170. ÜBUNG: EVENT STORMING IM KINO

  171. http://www.domainstorytelling.or

  172. PUTS NAVIGATING OFFICER CAPTAIN ASKS FOR 7 SHIP SILHOUETTE ON

    CARTO-GRAPHER SOUNDING SHIP DEPTH MEASURES 1 SENDS 2 TO CALCULATES 3 DRAW S 4 SENDS 5 DEPTH MAP TO MOVES & TURNS 8 SHIP SILHOUETTE TO FIND 9 DISCUSSES WITH 6 ROUTE ROUTE DEPTH MAP DEPTH MAP DEPTH (RAW) ROUTE CONTOUR LINES
  173. LEGT NAUTIKER KAPITÄN FRAGT NACH 7 SCHIFFS- SILHOUETTE AUF PEILDIENST

    PEILSCHIFF TIEFE PEILT 1 SENDET 2 AN BERECHNET 3 ERZ EUGT 4 SENDET 5 PEILPLAN AN VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE UND FINDET 9 MELDET AN 6 ROUTE ROUTE PEILPLAN PEILPLAN TIEFEN- ZAHLEN ROUTE TIEFENLINIEN
  174. None
  175. None
  176. Domain Storytelling Explained @hofstef @hschwentner

  177. @hschwentner The right people

  178. None
  179. None
  180. None
  181. @hschwentner DEPTH MAP “The cartographer sends the depth map to

    the nautical officer” SENDS NAUTICAL OFFICER CARTOGRAPHER TO
  182. @hschwentner PEILPLAN »Der Peildienst sendet den Peilplan an den Nautiker«

    SENDET NAUTIKER PEILDIENST AN
  183. Active Listening

  184. CONCRETE STORIES VS. ABSTRACT PROCESSES

  185. @hschwentner actor work object activity 5 sequence number

  186. @hschwentner SHIP SILHOUETTE CAPTAIN MOVES

  187. @hschwentner SILHOUETTE KAPITÄN VERSCHIEBT

  188. @hschwentner person group IT system

  189. @hschwentner DRAWS MEASURES DEPTH DEPTH MAP

  190. @hschwentner ZEICHNET PEILT TIEFE PEILPLAN

  191. @hschwentner SENDS DRAWS DEPTH MAP DEPTH MAP

  192. @hschwentner SENDET ZEICHNET PEILPLAN PEILPLAN

  193. PICTOGRAPHIC LANGUAGE – NO IF/SWITCH/OR actor work object acNvity 5

    sequence number
  194. ACTORS ONCE/ WORK OBJECTS SEVERAL TIMES PUTS NAUTICAL OFFICER 7

    SHIP SILHOUETTE MOVES & TURNS 8 SHIP SILHOUETTE
  195. ACTORS ONCE/ WORK OBJECTS SEVERAL TIMES LEGT NAUTIKER 7 SCHIFFS-

    SILHOUETTE VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE
  196. Cartographer depth measures 1 depth (raw) sends 2 to Sounding

    Ship
  197. PEILDIENST TIEFE PEILT 1 TIEFENDATEN SENDET 2 AN PEILSCHIFF

  198. @hschwentner ßDraw here Leave some empty space there à AnnotaNons,

    variaNons, and purpose PrecondiNons, assumpNons, and triggers
  199. @hschwentner 3 good examples are better than 1 bad abstraction.

    Frei nach Peter Hruschka
  200. None
  201. PowerPoint

  202. https://www.wps.de/modeler/ • www.wps.de/modeler/ • github.com/WPS/domain-story-modeler

  203. @hschwentner More on Domain Storytelling

  204. None
  205. WPS – Workplace Solutions #dddkonkret www.wps.de STRATEGISCHES DESIGN Domain-Driven Design

    konkret
  206. 16.09.20 //// Seite 266 WPS – Workplace Solutions ÜBERSICHT DOMÄNE

    DOMÄNE
  207. ?

  208. ?

  209. None
  210. None
  211. None
  212. None
  213. None
  214. ?

  215. ?

  216. None
  217. @hschwentner »Wer ein unternehmensweites Domänenmodell einsetzt, hat die Kontrolle über

    sein Leben verloren« – Karl Lagerfeld
  218. None
  219. None
  220. None
  221. None
  222. None
  223. None
  224. None
  225. Bounded Context

  226. None
  227. Bewegung Kosmetik Gefühle

  228. LEGT NAUTIKER KAPITÄN FRAGT NACH 7 SCHIFFS- SILHOUETTE AUF PEILDIENST

    PEILSCHIFF TIEFE PEILT 1 SENDET 2 AN BERECHNET 3 ERZ EUGT 4 SENDET 5 PEILPLAN AN VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE UND FINDET 9 MELDET AN 6 ROUTE ROUTE PEILPLAN PEILPLAN TIEFEN- ZAHLEN ROUTE TIEFENLINIEN TIEFEN- MESSUNG MANÖVER- PLANUNG MANÖVER- PLANUNG TIEFEN- MESSUNG
  229. 16.09.20 //// Seite 289 WPS – Workplace Solutions TIDE- VORHER-

    SAGE TIEFEN- MESSUNG MANÖVER- PLANUNG MODELLE IM HAFEN
  230. @hschwentner Another Example

  231. None
  232. None
  233. @hschwentner Do I get a car for this?

  234. None
  235. CUSTOMER TELLS WISH FOR 1 SALES-PERSON SIGNS TO GIVES FOR

    CONTRACT 3 RISIK MANAGER CONTRACT PASSES ON TO 4 CONTRACT VOTES CHECKS CALCULATES 5 6 7 CALCU- LATES TO 8 2 CAR CREDIT RATING INSTALLMENT CAR RESALE VALUE CONTRACT
  236. CUSTOMER SIGNS CONTRACT 3 RISK MANAGER CONTRACT VOTES 7 <<En$ty>>

    LeasingContract sign() vote()
  237. <<En$ty>> LeasingContract sign() vote()

  238. <<En$ty>> LeasingContract sign() vote() extend() terminate() sell_to_refinance()

  239. <<Entity>> LeasingContract sign() vote() ✘

  240. <<Entity>> LeasingContract sign() <<En$ty>> LeasingContract vote()

  241. <<En$ty>> LeasingContract sign() vote() ✘

  242. <<En2ty>> LeasingContract sign() <<Entity>> LeasingContract vote()

  243. <<Entity>> LeasingContract sign() <<En2ty>> LeasingContract vote() SALES RISK MANAGEMENT

  244. 16.09.20 //// Seite 304 WPS – Workplace Solutions CUSTOMER TELLS

    WISH FOR 1 SALES-PERSON SIGNS TO GIVES FOR CONTRACT 3 RISIK MANAGER CONTRACT PASSES ON TO 4 CONTRACT VOTES CHECKS CALCULATES 5 6 7 CALCU- LATES TO 8 2 CAR CREDIT RATING INSTALLMENT CAR RESALE VALUE CONTRACT SALES RISK MANAGMENT SALES RISK MANAGMENT
  245. @hschwentner Clear Boundaries

  246. None
  247. @hschwentner The One Big Model

  248. None
  249. @hschwentner Reality: Not one big model But several mixed models

  250. @hschwentner Why is that?

  251. None
  252. None
  253. @hschwentner Too Big to be understood as a whole

  254. None
  255. None
  256. 16.09.20 //// Seite 316 WPS – Workplace Solutions Indikatoren: §

    Grenzen im Prozess § Abteilungen in der Organisation § Kontextuelle Sprache § Unterschiedlicher Umgang mit den Entities/Aggregates § Unterschiedliche zeitliche Trigger § NICHT: Nach Entities/Aggregaten selbst! WIE SCHNEIDE ICH MEINE DOMÄNE? Foto: Wikipedia/PD-ScottForesman
  257. 16.09.20 //// Seite 317 WPS – Workplace Solutions

  258. 16.09.20 //// Seite 318 WPS – Workplace Solutions Team Kopf

    Team Schwanz Team Rumpf Team Beine
  259. 16.09.20 //// Seite 319 WPS – Workplace Solutions Team Emma

    Team Berta Team Erna Team Lisl
  260. @hschwentner Code Team Database

  261. 16.09.20 //// Seite 321 WPS – Workplace Solutions KONTEXTE –

    fachlich, organisatorisch, technisch technisch (SYSTEME) fachlich (SUBDOMÄNEN) organisatorisch (TEAMS)
  262. 16.09.20 //// Seite 322 WPS – Workplace Solutions KONTEXTE -

    BEISPIEL: technisch CORE MASTER BI (Das Beispiel entspricht grob der tatsächlichen Situation bei einem Kunden)
  263. 16.09.20 //// Seite 323 WPS – Workplace Solutions KONTEXTE -

    NEGATIV-BEISPIEL: fachlich vs. technisch CORE MASTER BI V ERKA U F FA KTU RA VERSAND ARTIKEL
  264. 16.09.20 //// Seite 324 WPS – Workplace Solutions KONTEXTE -

    NEGATIV-BEISPIEL: fachlich vs. technisch vs. organisatorisch CORE MASTER BI VERKAU F FAKTU RA VERSAND ARTIKEL TEAM BESTAND TEAM BI TEAM SALE TEA M LO G ISTIK
  265. 16.09.20 //// Seite 325 WPS – Workplace Solutions @JoernKoch An

    den Schnittstellen entstehen „SCHMERZEN“! • fachlich • technisch • organisatorisch BIG BALL OF PAIN CORE MASTER BI VERKAU F FAKTU RA VERSAND ARTIKEL TEAM BESTAND TEAM BI TEAM SALE TEA M LO G ISTIK
  266. 16.09.20 //// Seite 326 WPS – Workplace Solutions KONTEXTE -

    POSITIV-BEISPIEL: fachlich V ERKA U F FA KTU RA ARTIKEL- AUSWAHL VERSAND
  267. 16.09.20 //// Seite 327 WPS – Workplace Solutions KONTEXTE -

    POSITIV-BEISPIEL: fachlich vs. technisch V ERKA U F FA KTU RA VERSAND ARTIKEL- AUSWAHL
  268. 16.09.20 //// Seite 328 WPS – Workplace Solutions KONTEXTE -

    POSITIV-BEISPIEL: fachlich vs. technisch vs. organisatorisch TEA M V ERKA U F TEA M FA KTU RA TEAM VERSAND TEAM ARTIKEL- AUSWAHL BOUNDED CONTEXTE! Es bleibt zusammen, was zusammen gehört! • fachlich • technisch • organisatorisch
  269. 16.09.20 //// Seite 329 WPS – Workplace Solutions BIG BALL

    OF PAIN vs. Aufbau nach DDD CORE MASTER BI VERKAU F FAKTU RA VERSAND ARTIKE L TEAM BESTAND TEAM BI TEAM SALE TEA M LO G ISTIK TEA M V ERKA U F TEA M FA KTU RA TEAM VERSAND TEAM ARTIKEL- AUSWAHL
  270. 16.09.20 //// Seite 330 WPS – Workplace Solutions BOUNDED CONTEXTE

    SCHNEIDEN Diskutiert: In welche Bounded Contexts teilt sich das Kino auf?
  271. 16.09.20 //// Seite 331 WPS – Workplace Solutions BOUNDED CONTEXTS

    FÜR DAS KINO ABLAUF- PLANUNG KARTEN-VERKAUF BUCH-HALTUNG
  272. SUBDOMÄNEN IDENTIFIZIEREN (aka „DOMÄNENSCHNITT“)

  273. 16.09.20 //// Seite 333 WPS – Workplace Solutions FINDE DIE

    POINTS OF NO RETURN
  274. 16.09.20 //// Seite 334 WPS – Workplace Solutions @JoernKoch POINTS

    OF NO RETURN Welche Ereignisse schließen Teilprozesse dauerhaft ab?
  275. 16.09.20 //// Seite 335 WPS – Workplace Solutions FINDE DIE

    POINTS OF NO RETURN! PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM
  276. 16.09.20 //// Seite 336 WPS – Workplace Solutions FINDE DIE

    POINTS OF NO RETURN! PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM
  277. 16.09.20 //// Seite 337 WPS – Workplace Solutions FINDE DIE

    POINTS OF NO RETURN! PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM
  278. 16.09.20 //// Seite 338 WPS – Workplace Solutions FINDE DIE

    POINTS OF NO RETURN! PEIL- POSITION ERREICHT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN M SIM
  279. 16.09.20 //// Seite 339 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN ON HT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S
  280. 16.09.20 //// Seite 340 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN ON HT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S
  281. 16.09.20 //// Seite 341 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN ON HT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S BOUNDARY
  282. 16.09.20 //// Seite 342 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN ON HT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S PIVOTAL EVENT
  283. 16.09.20 //// Seite 343 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN ON HT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S BOUNDARY EVENT @JoernKoch
  284. 16.09.20 //// Seite 344 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN ON HT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S VORBEREITUNG MANÖVER- PLANUNG
  285. 16.09.20 //// Seite 345 WPS – Workplace Solutions @JoernKoch Nach

    einem POINT OF NO RETURN geht es »irgendwie ganz anders« weiter. VORBEREITUNG MANÖVER- PLANUNG
  286. GIBT ES NOCH MEHR SUBDOMÄNEN?

  287. 16.09.20 //// Seite 347 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN ON HT TIEFE »10M« GEPEILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S VORBEREITUNG MANÖVER- PLANUNG
  288. 16.09.20 //// Seite 348 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN FE M« ILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S VORBEREITUNG MANÖVER- PLANUNG
  289. 16.09.20 //// Seite 349 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN FE M« ILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S PEILPLAN- ERSTELLUNG MANÖVER- PLANUNG
  290. 16.09.20 //// Seite 350 WPS – Workplace Solutions IDENTIFIZIERE DIE

    SUBDOMÄNEN FE M« ILT TIEFENZAHL EINGE- ZEICHNET TIEFE AN PEILDIENST GEMELDET TIEFENZAHL »ROT« GEFÄRBT TIEFEN- LINIE GEZOGEN PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN SILHOUETTE AUF ÖSTLICHE RICHTUNG GEDREHT SILHOUETTE 300M VER- SCHOBEN S PEILPLAN- ERSTELLUNG MANÖVER- PLANUNG TIEFEN- MESSUNG ZOOMSTUFEN- BERECHNUNG TIDE- VORHERSAGE
  291. 16.09.20 //// Seite 351 WPS – Workplace Solutions ERGEBNIS SICHERN!

    PEILPLAN GEZEICHNET ZOOM- STUFEN BERECHNET UMLAUF- BAHN DES MONDES BERECHNET TIDEKURVE ERSTELLT SILHOUETTE DER LÄNGE 100M AUSGE- SCHNITTEN MANÖVER- PLANUNG ZOOMSTUFEN- BERECHNUNG TIDE- VORHERSAGE
  292. 16.09.20 //// Seite 352 WPS – Workplace Solutions ÜBUNG: Findet

    Points-of-no-Return und identifiziert die Subdomänen des Kinos.
  293. WPS – Workplace Solutions #dddkonkret www.wps.de STRATEGIC DESIGN MIT SUBDOMAINS

    Domain-Driven Design konkret
  294. None
  295. Subdomain

  296. None
  297. 16.09.20 //// Seite 357 WPS – Workplace Solutions LEGT NAUTIKER

    KAPITÄN FRAGT NACH 7 SCHIFFS- SILHOUETTE AUF PEILDIENST PEILSCHIFF TIEFE PEILT 1 SENDET 2 AN BERECHNET 3 ERZ EUGT 4 SENDET 5 PEILPLAN AN VERSCHIEBT & DREHT 8 SCHIFFS- SILHOUETTE UND FINDET 9 MELDET AN 6 ROUTE ROUTE PEILPLAN PEILPLAN TIEFEN- ZAHLEN ROUTE TIEFENLINIEN TIEFEN- MESSUNG MANÖVER- PLANUNG MANÖVER- PLANUNG TIEFEN- MESSUNG
  298. 16.09.20 //// Seite 358 WPS – Workplace Solutions CUSTOMER TELLS

    WISH FOR 1 SALES-PERSON SIGNS TO GIVES FOR CONTRACT 3 RISIK MANAGER CONTRACT PASSES ON TO 4 CONTRACT VOTES CHECKS CALCULATES 5 6 7 CALCU- LATES TO 8 2 CAR CREDIT RATING INSTALLMENT CAR RESALE VALUE CONTRACT SALES RISK MANAGMENT SALES RISK MANAGMENT
  299. None
  300. Team Emma Team Berta Team Erna Team Lisl

  301. Team Emma Team Berta Team Erna Team Lisl

  302. None
  303. None
  304. TIDE- VORHER- SAGE MANÖVER- PLANUNG TIEFEN- MESSUNG

  305. Kano-Modell

  306. Noriaki Kano

  307. Kundenzufriedenheit Grad der Umsetzung Basis-Features Leistungs-Features Begeisterungs-Features

  308. 16.09.20 //// Seite 368 WPS – Workplace Solutions SUBDOMAINS Teilt

    die Kontexte nach Core, Supporting, Generic ein.
  309. 16.09.20 //// Seite 369 WPS – Workplace Solutions BOUNDED CONTEXTS

    FÜR DAS KINO ABLAUF- PLANUNG KARTEN- VERKAUF BUCH-HALTUNG
  310. @hschwentner How to split the monolith

  311. 1) How should it be? 2) How is it? 3)

    How to move the “is” to the “ideal”? RISK MANAGE -MENT SALES
  312. Collaborative Modeling RISK MANAGE -MENT SALES

  313. None
  314. http://www.domainstorytelling.or

  315. Architectural Analysis

  316. Tools: Sotograph Structure 101 usw.

  317. None
  318. From „is“ to „ideal“

  319. <<En2ty>> Contract sign() vote() SALES RISK MANAGEMENT <<Entity>> Contract sign()

    vote() BIG BALL OF MUD <<Entity>> Contract sign() vote()
  320. 1) How should it be? 1) Collabora2ve Modelling 2) “ideal”

    context map 2) How is it? 1) Architecture Analysis 2) As-is context map 3) How to move the “is” to the “ideal”? 1) Extract a suppor2ng domain to learn 2) Then extract core(s)
  321. @hschwentner Always Microservices?

  322. Simon Brown

  323. Distributed Big Ball Of Mud Modulith Microservices Monolithic Big Ball

    Of Mud
  324. None
  325. 16.09.20 //// Seite 429 WPS – Workplace Solutions § 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 § Conformist STRATEGISCHES DESIGN – WEITERE BEGRIFFE
  326. WPS – Workplace Solutions #dddkonkret www.wps.de TAKTISCHES DESIGN Domain-Driven Design

    konkret
  327. 16.09.20 //// Seite 483 WPS – Workplace Solutions ÜBERSICHT DOMÄNE

    DOMÄNE
  328. 16.09.20 //// Seite 484 WPS – Workplace Solutions ARCHITEKTUR INNERHALB

    EINES BOUNDED CONTEXT TIDE- VORHER- SAGE MANÖVER- PLANUNG TIEFENMESSUNG
  329. 16.09.20 //// Seite 485 WPS – Workplace Solutions ARCHITEKTUR INNERHALB

    EINES BOUNDED CONTEXT TIEFENMESSUNG User Interface Domain Infrastructure Application
  330. 16.09.20 //// Seite 486 WPS – Workplace Solutions DOMAIN-DRIVEN DESIGN

    – SCHICHTENARCHITEKTUR § User-Interface-Schicht § Nimmt Eingaben und Benutzerkommandos entgegen und stellt Informationen dar. § Application-Schicht § Beschreibt und koordiniert Geschäftsprozesse. § Domain-Schicht § Repräsentiert die Fachdomäne. § Infrastruktur-Schicht § Bietet technische Dienste, wie beispielsweise Persistenz oder die Kommunikation mit anderen Systemen. User Interface Domain Infrastructure Application
  331. 16.09.20 //// Seite 487 WPS – Workplace Solutions SCHICHTENARCHITEKTUR –

    KRITIK User Interface Domain Infrastructure Application TIEFENMESSUNG Domain-Schicht ist an Datenbank-Schicht gebunden èFachlichkeit „tropft“ in Technik èTrennung Fachlichkeit/Technik nicht mehr sauber Alistair Cockburn Foto: Fotograf Dennis Hamilton/Alistair Cockburn/flickr/CC BY 2.0
  332. 16.09.20 //// Seite 488 WPS – Workplace Solutions VON SCHICHTEN

    ZU HEXAGONEN § UI-Schicht und Infrastrukturschicht sind beides Dinge mit denen die Fachlogik (Domäne) mit der Außenwelt kommuniziert § Die Hexagonale Architektur betrachtet UI und Infrastruktur (aus Fachlogiksicht) deshalb gleich § außen/innen statt oben/unten § Ein Hexagon bietet Ports (die Kanten) http://alistair.cockburn.us/Hexagonal+architecture DOMAIN Port Port Port Port Port Port Adapter Adapter Adapter Adapter Adapter Adapter § Auf die Ports werden Adapter gesetzt
  333. 16.09.20 //// Seite 489 WPS – Workplace Solutions CLEAN ARCHITECTURE

    Robert C. Martin ”Uncle Bob“
  334. 16.09.20 //// Seite 490 WPS – Workplace Solutions DIE OBJEKTORIENTIERTE

    GRUNDIDEE: FACHLICHE GEGENSTÄNDE ALS AUSGANGSPUNKT
  335. 16.09.20 //// Seite 491 WPS – Workplace Solutions VON DER

    DOMAIN STORY ZUM DOMÄNENMODELL Silhouette VERSCHIEBT SILHOUETTE NAUTIKER LÄNGE Laenge verschiebeUm(:Laenge) UM
  336. ÜBUNG: DOMÄNENMODELL BAUEN

  337. 16.09.20 //// Seite 493 WPS – Workplace Solutions En##es Value

    Objects Aggregates Services Factories Repositories
  338. 16.09.20 //// Seite 494 WPS – Workplace Solutions FACHLICHE BEGRIFFE

    – WAS FÄLLT AUF? Versicherungspolice Urlaubsantrag Baumaßnahme Kaufvertrag Fahrauftrag Postleitzahl GPS-Koordinate IBAN Containernummer IATA-Code
  339. 16.09.20 //// Seite 495 WPS – Workplace Solutions ENTITIES §

    Objekte einer Fachdomäne, die der Anwender bearbeitet. § An ihnen schlagen sich die Arbeitsergebnisse nieder! § Können aus andere Entities zusammengesetzt sein § Besitzen unveränderliche Identität. § Haben klar definierten Lebenszyklus. § Besitzen einen (meist veränderlichen) Zustand. § Beschreiben ihren Zustand mit Value Objects. § Synonyme: Business Object / Domain Object / Material § NICHT ZU VERWECHSELN mit dem Begriff "ENTITY" aus dem Entity-Relationship-Modell! Foto: Bundesrepublik Deutschland/Wikipedia/PD Germany Foto: Kaz/pixabay/CC0 Foto: Thomas G./Wikipedia/CC BY-SA 3.0 Foto: OpenClipart-Vectors/pixabay/CC0
  340. None
  341. 16.09.20 //// Seite 497 WPS – Workplace Solutions ENTITIES <<Entity>>

    Peilplan peilplanNummer markiere()
  342. 16.09.20 //// Seite 498 WPS – Workplace Solutions VALUE OBJECTS

    § Value Objects sind Symbole für Werte eines bestimmten Typs in der Fachdomäne. § Symbolisieren bei Gleichheit denselben Wert. § Sie werden vom Anwender nicht bearbeitet und sind unveränderlich. § Können ggf. (aus anderen Value Objects) berechnet werden. § Können aus anderen Value Objects bestehen, aber nie aus Entities! ValueObject 2,5 ValueObject ValueObject ValueObject ValueObject zwei- einhalb
  343. Tiefenzahl Durchmesser Position

  344. 16.09.20 //// Seite 500 WPS – Workplace Solutions VALUE OBJECTS

    <<Value Object>> Tiefenzahl tiefe : int equals()
  345. 16.09.20 //// Seite 502 WPS – Workplace Solutions ENTITES, VALUE

    OBJECTS Welche Entities haben wir modelliert? Welche Value Objects gibt es? Welche IST-Konzepte sind für das SOLL überflüssig?
  346. 16.09.20 //// Seite 503 WPS – Workplace Solutions ENTITIES UND

    VALUE OBJECTS IM KARTENVERKAUF Saalplan • Anzahl Plätze suchen • Verkaufte Plätze mark. • Reserv. Plätze mit RN markieren Vorstellung • Datum • Zeitraum • Film Reservierungs -nummer Kinokarte • Mit Platz beschriften • Vorstellung Saalplanstapel • Saalplan zu Vorst. Holen • Saalplan zurücklegen Liste der Reservierungsnummern • Reservierungsnummer abholen • Name+Vorst. Vermerken • Vorst. Mit RN heraussuchen Film • Titel • Regisseur, Schauspieler • Freigabe • Spieldauer Platz/Sitzplatz • Reihe • Nummer Saal/Kinosaal • Kapazität • Anzahl Reihen VO Entity Entity Entity Entity Entity Entity
  347. 16.09.20 //// Seite 504 WPS – Workplace Solutions ENTITIES UND

    VALUE OBJECTS IM KARTENVERKAUF Saalplan • Anzahl Plätze suchen • Verkaufte Plätze mark. • Reserv. Plätze mit RN markieren Vorstellung • Datum • Zeitraum • Film Reservierungs -nummer Liste der Reservierungsnummern • Reservierungsnummer abholen • Name+Vorst. Vermerken • Vorst. Mit RN heraussuchen Film • Titel • Regisseur, Schauspieler • Freigabe • Spieldauer Platz/Sitzplatz • Reihe • Nummer Saal/Kinosaal • Kapazität • Anzahl Reihen VO Entity Entity Entity Entity Entity Entity
  348. None
  349. @hschwentner What now?

  350. @hschwentner Further topics: Ubiquitous Language Tactical Design (Entity, Value Object,

    Aggregate, Repository, Service)
  351. @hschwentner Consulting

  352. None
  353. Workshop Domain-Driven Design konkret wps.de/ddd

  354. None
  355. @DDDger https://dddgermany.herokuapp.com

  356. @hschwentner LeasingNinja.io

  357. @hschwentner Literature

  358. Foto: H. Schwentner

  359. None
  360. 15$ online: leanpub.com/domainstorytelling Frag mich nach Deiner Kopie Einführung mit

    allem was man wissen muss Überblick
  361. 15$ online: leanpub.com/domainstorytelling Frag mich nach Deiner Kopie Einführung mit

    allem was man wissen muss Überblick Rabatt! https://leanpub.com/domainstorytelling/c/swasummit2020
  362. None
  363. None
  364. @hschwentner FEEDBACK

  365. @hschwentner

  366. None
  367. None
  368. None
  369. None
  370. None
  371. Henning Schwentner @hschwentner hs@wps.de DDD DDD Slides: speakerdeck.com/hschwentner Book: leanpub.com/domainstorytelling