Skip to content
IRC-Coding IRC-Coding
Hexagonale Architektur Ports and Adapters Dependency Inversion Clean Architecture Softwarearchitektur

Hexagonale Architektur (Ports and Adapters) einfach erklärt – Definition, Vorteile, Prüfungsfragen

Hexagonale Architektur (Ports and Adapters) verständlich erklärt: Domänenkern, Ports, Adapter, Dependency Inversion, Praxisbeispiel und typische Prüfungsfragen.

S

schutzgeist

2 min read

Hexagonale Architektur

Dieser Beitrag ist eine Begriffserklärung zur Hexagonalen Architektur (Ports and Adapters) – inklusive typischer Prüfungsfragen, kurzer Merkpunkte und Tags zur Wiederholung.

Was ist die Hexagonale Architektur?

Die Hexagonale Architektur (auch Ports and Adapters) ist ein Architekturansatz, der den fachlichen Kern (Domäne / Use Cases) strikt von äußeren Abhängigkeiten trennt – etwa:

  • UI (Web, Mobile, CLI)
  • Datenbank
  • Message Broker
  • externe APIs

Die Grundidee: Der Kern definiert, was er braucht (Ports/Schnittstellen). Die Infrastruktur liefert austauschbare Implementierungen (Adapter).

Die Bausteine: Domäne, Ports, Adapter

Domänenkern

Im Zentrum liegt die Fachlogik:

  • Entities / Value Objects
  • Use Cases / Application Services
  • Geschäftsregeln

Ports

Ports sind Schnittstellen, die die Richtung der Abhängigkeit festlegen:

  • Inbound Ports: Was die Anwendung anbietet (Use Cases, Commands)
  • Outbound Ports: Was die Anwendung benötigt (Repositories, Payment, Mail, Logging)

Adapter

Adapter verbinden Ports mit konkreter Technik:

  • Inbound Adapter: REST Controller, GraphQL Resolver, CLI, Scheduler
  • Outbound Adapter: DB-Repository, HTTP-Client, Cache, Message Producer

Warum ist das hilfreich? (Vorteile)

  • Testbarkeit: Kernlogik lässt sich ohne DB/HTTP testen (Mocks/Fakes auf Ports)
  • Austauschbarkeit: Technologie-Wechsel betrifft Adapter, nicht den Kern
  • Geringere Kopplung: weniger Framework-Abhängigkeiten im Domain-Code
  • Saubere Verantwortlichkeiten: klare Systemgrenzen

Typische Nachteile / Trade-offs

  • Mehr Abstraktion (Ports/Adapter) = mehr Artefakte
  • Höherer Initialaufwand (Wiring, DI, Mapping)
  • Lernkurve für Teams, die „direkt gegen Frameworks“ entwickeln

Mini-Praxisbeispiel (vereinfacht)

Idee

Ein Use Case „Bestellung bezahlen“ kennt nur Ports. Ein Stripe-Adapter oder ein DB-Adapter kann später ausgetauscht werden.

// Inbound Port
export interface PayOrderUseCase {
  pay(orderId: string): Promise<string>;
}

// Outbound Ports
export interface OrderRepositoryPort {
  findById(orderId: string): Promise<any>;
  save(order: any): Promise<void>;
}

export interface PaymentProviderPort {
  charge(amountInCents: number, customerId: string): Promise<{ transactionId: string }>;
}

Typische Prüfungsfragen (mit Kurzantwort)

  1. Was ist das Ziel der hexagonalen Architektur? Entkopplung der Fachlogik von technischen Details über Ports und Adapter.
  2. Inbound vs. Outbound Adapter – Unterschied? Inbound bringt Anfragen in den Kern, Outbound implementiert Infrastrukturzugriffe.
  3. Wie wird Dependency Inversion hier umgesetzt? Der Kern definiert Ports (Interfaces), die Infrastruktur implementiert sie.
  4. Warum ist das IHK-relevant? Du kannst Architekturentscheidungen mit Testbarkeit, Wartbarkeit und Austauschbarkeit begründen.

Fazit

Die hexagonale Architektur eignet sich besonders, wenn du langfristige Wartbarkeit, gute Tests und Technologie-Unabhängigkeit priorisierst.

Zurück zum Blog
Share:

Ähnliche Beiträge