Programm

DDD Camp mit Matthias Bohlen
Präsentiert von Entwickler Akademie
und Entwickler Magazin

EIN TAG ENTWERFEN, ZWEI TAGE CODEN

Eine Teilnehmerin schlug ihre Idee vor, eine App für Autofahrer zu machen, die jemand anderes im Straßenverkehr ohne Rücklicht sehen. Die App hieß „Dein Licht geht nicht“. Die Idee: Die Autofahrerin gibt das Kennzeichen des vorausfahrenden Fahrers in die App ein. Benutzt dieser die gleiche App, bekommt er eine Nachricht: „Dein linkes Rücklicht geht nicht“.

Die Idee entstand am ersten Tag und so wurde daraufhin mit Event Storming und Dormain-driven Design die Idee analysiert, ein Backlog für das Entwickeln aufgestellt und ein Git-Repository angelegt, in dem alle Teilnehmenden arbeiten konnten.

Am Morgen des zweiten Tages wurde eine Architektur und ein User Interface für die App entworfen und danach gleich mit dem Coding begonnen.

Am dritten Tag haben die Teilnehmenden die App zu Ende programmiert und getestet. Der Trainer gab allen ein Feedback zu ihrem Code und Entwurf. Es waren Teilnehmer:innen mit C#/.Net und ABAP/SAP dabei.

Alle konnten den gemeinsam entwickelten Code mit nach Hause nehmen, sowie eine Musterlösung für eine weitere App, ebenfalls mit Sourcecode und Dokumentation.

ZEITLICHER ABLAUF
Der zeitliche Ablauf kann bei einem Online-Event variieren.

TAG: 1 Event Storming, Bounded Contexts, Backlog

 
 
  • Kurze Wiederholung der Grundlagen des taktischen DDD (die 9 Grundbausteine und
    wie man sie im Code abbildet)
  • Event Storming, um eine Domäne zu erforschen, die anschließend im Code umgesetzt
    wird
  • Ausarbeitung der Domäne, bis herunter zu Aggregate Clusters mit Events, Commands
    und Read models
  • Identifizieren der Bounded Contexts
  • Cross-functional Teamarbeit (Backend und Frontend gemischt), mit jeweils einem
    Team pro Bounded Context
  • Backlogs nach Priorität bzw. Abhängigkeiten sortieren

TAG 2: Frontend, Architektur und Coden in der Cloud

 

Frontends entwerfen:

  • Erstellung von Skizzen für typische UIs, welche anschließend umgesetzt werden
  • Grundlage dafür sind die im Event Storming gefundenen Read models, Commands
    und Aggregates

Architektur festlegen:

  • Schneiden von Microservices oder Self Contained Systems mit Hilfe der
    DDD-Bausteine Module, Service, Aggregate, Factory, und Repository
  • Definition der APIs zwischen Client und Server (REST oder GraphQL)

Anschließend Cloud aufsetzen und das gemeinsame Coding in den Teams starten

TAG 3: Programmieren, Demonstration & Feiern der Lösung

 
  • Weiter konzentriertes, intensives Coding von Backends und Frontends
  • Gegen Ende der Veranstaltung gemeinsames Vorzeigen, Ausprobieren und Feiern
    der fertigen Lösungen

 

Tag 1: Event Storming, Bounded Contexts, Backlog

  • Kurze Wiederholung der Grundlagen des taktischen DDD (die 9 Grundbausteine und wie man sie im Code abbildet)
  • Event Storming, um eine Domäne zu erforschen, die anschließend im Code umgesetzt wird
  • Ausarbeitung der Domäne, bis herunter zu Aggregate Clusters mit Events, Commands, und Read models
  • Identifizieren der Bounded Contexts
  • Cross-functional Teamarbeit (Backend und Frontend gemischt), mit jeweils einem Team pro Bounded Context
  • Backlogs nach Priorität bzw. Abhängigkeiten sortieren

 

Tag 3: Programmieren, Demonstration & Feiern der Lösung

  • Weiter konzentriertes, intensives Coding von Backends und Frontends
  • Gegen Ende der Veranstaltung gemeinsames Vorzeigen, Ausprobieren und Feiern der fertigen Lösungen

 

Tag 2: Frontend, Architektur und Coden in der Cloud

Frontends entwerfen:

  • Erstellung von Skizzen für typische UIs, welche anschließend umgesetzt werden
  • Grundlage dafür sind die im Event Storming gefundenen Read models, Commands und Aggregates

Architektur festlegen:

  • Schneiden von Microservices oder Self Contained Systems mit Hilfe der DDD-Bausteine Module, Service, Aggregate, Factory, und Repository
  • Definition der APIs zwischen Client und Server (REST oder GraphQL)

Anschließend Cloud aufsetzen und das gemeinsame Coding in den Teams starten

Zeitlicher Ablauf für Online-Trainings

Hier mehr erfahren