Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas...

47
Jean-Pierre Dalbéra https://www.flickr.com/photos/dalbera/ https://www.flickr.com/photos/dalbera/ 11476371994/in/photolist-rjetrn- Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 Foto: Jean-Pierre Dalbéra, https://www.flickr.com/photos/dalbera/11476371994

Transcript of Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas...

Page 1: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur in der Praxis

Artur Tomas

neuland - Büro für Informatik

XP Days Germany 2016

Foto: Jean-Pierre Dalbéra, https://www.flickr.com/photos/dalbera/11476371994

Page 2: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Artur Tomas

neuland Büro für Informatik, Bremen

DDD / Shop-Systeme

Java / Ruby (on Rails)

Page 3: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Disclaimer

Hexagonal Architecture / Ports&Adapters Alistair Cockburn, 2005

„Implementing Domain Driven Design“ Vaughn Vernon

Page 5: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-ArchitekturFoto: Kate Hopkins, https://www.flickr.com/photos/accidentalhedonist/4809144050

Page 6: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-Architektur

Etabliert

Intuitiv (Präsentation, Logik, Persistenz)

Page 7: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-Architektur

Oben/Unten - Unterscheidung

Obere Schicht ist von der/den unteren abhängig

Page 8: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-Architektur

Controller

Service Domain/Model Repository / DAO

Page 9: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-Architektur

Problem: Fehlende Grenzen

Page 10: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-Architektur

Fortspinnungstypus

Page 11: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-Architektur

Interfaces

Page 12: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Schichten-Architektur

Interfaces und ihre Implementierungin einem Package:

package de.myapp.persistenceProductRepository.java // interfaceProductRepositoryImpl.java // hier?

Page 14: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

3 Bereiche:

- Applikation / Domäne

- Primäre (aktive) Adapter

- Sekundäre (passive) Adapter

Page 16: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

placeOrder-Request

Foto: Intel Free Press, https://www.flickr.com/photos/intelfreepress/7777276062

Page 21: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Hexagonale Architektur

placeOrder

OrderController

Adapter (primary)Jean-Pierre Dalbéra

OrderApplicationService

Application-Services

Adapter (secondary)

HibernateCartRepository

CartRepository

findCart

Interface

Page 22: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Hexagonale Architektur

placeOrder

OrderController

Adapter (primary)Jean-Pierre Dalbéra

OrderApplicationService

Application-Services

Cart

Adapter (secondary)

HibernateCartRepository

CartRepository

Page 23: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Hexagonale Architektur

placeOrder

OrderController

Adapter (primary)Jean-Pierre Dalbéra

OrderApplicationService

Application-Services

Product

Customer

Cart

Aggregate

Adapter (secondary)

HibernateCartRepository

CartRepository

Page 24: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Hexagonale Architektur

placeOrder

OrderController

Adapter (primary)Jean-Pierre Dalbéra

OrderApplicationService

Application-Services

Product

Customer

Cart

Aggregate

Adapter (secondary)

HibernateCartRepository

CartRepository

Page 25: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Hexagonale Architektur

placeOrder

OrderController

Adapter (primary)Jean-Pierre Dalbéra

OrderApplicationService

Application-Services

Product

Customer

Cart

Aggregate

Adapter (secondary)

HibernateCartRepository

CartRepository

OrderRepository

Page 26: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Hexagonale Architektur

placeOrder

OrderController

Adapter (primary)Jean-Pierre Dalbéra

OrderApplicationService

Application-Services

Product

Customer

Cart

Aggregate

Adapter (secondary)

HibernateCartRepository

CartRepository

OrderRepository

HibernateOrderRepository

Page 27: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Hexagonale Architektur

placeOrder

OrderController

Adapter (primary)Jean-Pierre Dalbéra

OrderApplicationService

Application-Services

Product

Customer

Cart

Aggregate

Adapter (secondary)

HibernateCartRepository

CartRepository

OrderRepository

HibernateOrderRepository

Page 32: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Applikation / Domäne entkoppelt von allen Adaptern!

Page 34: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Größe eines Hexagons: -> 1 Subdomäne (DDD)

entspricht in der Umsetzung: -> 1 Bounded Context

Page 35: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Kommunikation mit externen Systemen?

Page 36: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Kommunikation mit externen Systemen?

-> Eigene DB, MQ, Mail … -> Adapter

Page 37: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Kommunikation mit anderen Systemen?

1 Hexagone 2 Fremde Services, Applikationen

-> Domain-Services

Page 39: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Legacy-Systeme:

-> Fortsetzung -> Refactoring/Migration -> Ablösung

Page 40: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Hexagon im Legacy-System?

-> Refactoring/Migration

Page 41: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Hexagon im Legacy-System?

-> Subdomänen

Page 42: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Hexagon im Legacy-System? Beispiel Web-Shop:

-> Suche -> Produkt -> Bestellweg -> „Mein Konto“

Page 45: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Subdomäne -> Bounded Context

Page 46: Hexagonale Architektur in der Praxis - XP Days...Hexagonale Architektur in der Praxis Artur Tomas neuland - Büro für Informatik XP Days Germany 2016 ... Hexagonal Architecture

Jean-Pierre Dalbérahttps://www.flickr.com/photos/dalbera/https://www.flickr.com/photos/dalbera/11476371994/in/photolist-rjetrn-

Hexagonale Architektur

Microservice mit Hexagon?

-> JA, falls Subdomäne