Context Map

Alle Fotos unterliegen der Creative Common Licence.

https://pixabay.com/de/

DDD I

Recap

DDD stellt die Modellierung der Fachlichkeit und die Schaffung einer domänenspezifischen Sprache in den Mittelpunkt.

Prinzipien

  • Einheitliche und unmißverständliche Sprache

Silberne Ehrennadel

CLUB_PIN_HONORARY_OFFICE_SILVER 

Prinzipien

  • Einheitliche und unmißverständliche Sprache

  • Modelliere die Fachlichkeit

Modelliere die Fachlichkeit

Fachliches Modell

Technisches Modell

Der Kunde identifiziert sich durch das Tupel: Vorname, Familienname, Ort und Strasse.

Der Kunde hat außerdem noch eine Rechnungs- und eine Lieferadresse.

Prinzipien

  • Einheitliche und unmißverständliche Sprache

  • Modelliere die Fachlichkeit

  • Konzentration auf die Kerndomäne

Ticketing

Benutzer-verwaltung

Payment

 

Warum "Context Map"

  • Fachlicher Überblick

  • Kontext Grenzen

  • Abhängigkeiten zwischen Kontexten

Wie kommunizieren verschiedene fachliche Kontexte?

Rest

Event

Technische Kommunikation

Rest

Team Kommunikation

Wir haben aber
keine Zeit die Än-
derung nachzu-
ziehen

Wir ändern
die Schnittstelle

Kommunikation

Voneinander abhängig

  • Notwendigkeit eines gem. Deployments

Gar keine Abhängigkeit

  • Änderungen eines BC beeinflusst kein anderes Team

Team Kommunikation

Gar keine Abhängigkeit

  • Änderungen eines BC beeinflusst kein anderes Team

Vertrag

Debitor

Logistik

Melde-
Adresse

Rechnungs-
Adresse

Lieferungs-
Adresse

Team Kommunikation

Voneinander abhängig

  • Notwendigkeit eines gem. Deployments

Gar keine Abhängigkeit

  • Änderungen eines BC beeinflusst kein anderes Team

Upstream / Downstream

  • Der Upstream beeinflusst den Downstream

Upstream / Downstream

  • Es geht nicht um Kommunkationsrichtungen

  • Es geht um Abhängigkeiten

Postel‘s Law:

„Be liberal in what you accept, conservative in what you send.”

 Absatz 2.10. des RFC 761 (TCP), Januar 1980

Shared Kernel

  • Teams, die unterschiedliche Anwendungen entwickeln, teilen sich ein Subset des Domänenmodells.

  • Das kann auf Code- oder auch auf Datenbankebene sein.

  • Hoher Abstimmungsaufwand zwischen den Teams.

SK

Partnership

  • Kooperative Zusammenarbeit zwischen Teams.

  • Kann technisch sein oder aber auch organisatorisch.

  • Korrespondierende Kommunikations-struktur zum Shared Kernel.

Customer / Supplier

  • Der Downstream hat Einfluss auf die Schnittstelle.

Wir brauchen
weitere Felder

OK

Customer

Suplier

U

D

Customer / Supplier

  • Der Downstream hat Einfluss auf die Schnittstelle.

  • Dieser Einfluss kann bis zu einem Vetorecht für Änderungen gehen.

  • Das kann dazu führen, dass die Entwicklung des Customers von einem Supplier behindert wird.

Open-host Service

  • Ein OHS bietet eine öffentliche Schnittstelle für alle Kunden

  • Es gibt keine kundenspezifischen Anpassungen.

U

D

WebService

  • Schnittstelle stabil halten

  • Nur inkrementelle Veränderungen

  • Sehe Dich als Dienstleister

OHS / Verantwortung

Strategien des Downstreams

Conformist

Conformist

Suplier

U

D

  • Der Conformist nimmt die Schnittstelle
    "as is"

  • Änderungen des Supliers haben 1:1 Auswirkungen beim Conformisten.

Anti Corruption Layer

  • Ein Bounded Context hat keine direkte Verbindung zu einem anderen.

  • Änderungen im Upstream führen nicht zu Veränderung im BC

  • ACL ist Teil des Bounded Context

ACL

Text

Separate Ways

  • Ein Bounded Context hat keine Verbindung zu einem anderen.

  • Hohe Integrationskosten.

  • Favorisierte Lösung für Produkte, um externe Systeme anzuschließen.

SW

Mapping

Published Language

  • Oft definiert von einem Konsortium

  • Meist kombiniert mit einem OHS

  • Beispiele: iCalendar, vCard

U

D

Public Language

Abhängikeiten

Shared Kernel

Customer / Supplier

Conformist

Anticorruption Layer

Separate Ways

Open / Host Service

Published Language

Enge Kopplung

Loose Kopplung

Shared Kernel, Customer/Supplier und Conformist sind primär Patterns, die eine sehr starke Kopplung und Kommunikation zwischen Teams erfordern.

Anticorruption Layer, Separate Ways, Open-/Host-Service und Published Language fordern eine losere Kopplung und somit auch weniger Eins-zu-eins-Kommunikation zwischen den Teams.

Conways law

“Organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations.”

Eric S. Raymond, einer der Gründer der Open Source Initiative, schreibt im New Hacker’s Dictionary, der gedruckten Version des Jargon Files, dass bei der Entwicklung eines Compilers durch vier Gruppen ein 4-pass-Compiler herauskommen wird.

Frontend

Backend

Team Kommunikation

Voneinander abhängig

Gar keine Abhängigkeit

Upstream / Downstream

  • Partnership
  • Shared Kernel
  • Separate Ways
  • Published Language
  • Customer - Supplier
  • Anticurruption Layer
  • Conformist

Reverse Engineering

BBOM

OHS

MySystem

BBOM

OHS

ACL

MySystem

Domäne

ACL

Computop

Payment

Conformist

Projekt

Produkt

Domäne

ACL

Payment

Produkt

Alle Fotos unterliegen der Creative Common Licence.

https://pixabay.com/de/