Katalog
concept#Architektur#Software Engineering#Entwurfsmuster#Softwareentwicklung#Testbarkeit

Hexagonale Architektur

Ein Architekturansatz, der die Trennung von Geschäftslogik und Infrastruktur fördert.

Die hexagonale Architektur, auch als Ports-and-Adapters-Architektur bekannt, ist ein Entwurfsmuster, das darauf abzielt, die Geschäftslogik von der Infrastruktur zu trennen.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Architektur
  • Reif

Technischer Kontext

DatenbankenDrittanbieterdiensteBenutzerschnittstellen

Prinzipien & Ziele

Trennung von Geschäftslogik und InfrastrukturVerwendung von Schnittstellen zur Förderung der ModularitätErmöglichung von Testbarkeit durch Isolation
Umsetzung
Domäne, Team

Use Cases & Szenarien

Kompromisse

  • Falsche Implementierung kann zu schwerwiegenden Problemen führen
  • Übermäßige Abstraktion kann die Verständlichkeit verringern
  • Schwierigkeiten bei der Integration neuer Technologien
  • Regelmäßige Überprüfung der Architektur.
  • Dokumentation aller Entscheidungen.
  • Schulung des Teams in den Prinzipien der hexagonalen Architektur.

I/O & Ressourcen

  • Anforderungen an die Software
  • Technische Spezifikationen
  • Ressourcenzuweisung
  • Funktionierende Softwarelösung
  • Dokumentation der Architektur
  • Testberichte

Beschreibung

Die hexagonale Architektur, auch als Ports-and-Adapters-Architektur bekannt, ist ein Entwurfsmuster, das darauf abzielt, die Geschäftslogik von der Infrastruktur zu trennen. Dies ermöglicht eine bessere Testbarkeit, Flexibilität und Wartbarkeit von Softwareanwendungen, indem verschiedene Schnittstellen (Ports) und Implementierungen (Adapters) verwendet werden, um die Interaktion mit externen Systemen zu ermöglichen.

  • Erhöhte Flexibilität bei der Anpassung an neue Anforderungen
  • Verbesserte Testbarkeit der Anwendung
  • Bessere Wartbarkeit durch klare Struktur

  • Kann zu einer erhöhten Komplexität führen, wenn nicht richtig implementiert
  • Erfordert ein gewisses Maß an Erfahrung im Team
  • Möglicherweise nicht geeignet für sehr kleine Projekte

  • Testabdeckung

    Der Prozentsatz des Codes, der durch Tests abgedeckt ist.

  • Fehlerquote

    Die Anzahl der Fehler pro 1000 Zeilen Code.

  • Entwicklungszeit

    Die Zeit, die benötigt wird, um neue Funktionen zu entwickeln.

E-Commerce-Plattform Beispiel

Ein Beispiel für eine E-Commerce-Plattform, die mit hexagonaler Architektur entwickelt wurde, um Flexibilität und Wartbarkeit zu gewährleisten.

Integration von Zahlungsanbietern

Ein Beispiel für die Integration verschiedener Zahlungsanbieter in eine bestehende Anwendung unter Verwendung von Adaptern.

Migration zu Microservices

Ein Beispiel für die schrittweise Migration einer monolithischen Anwendung zu einer Microservices-Architektur.

1

Anforderungen sammeln und analysieren.

2

Architekturdesign erstellen.

3

Implementierung der Module und Adapter.

⚠️ Technische Schulden & Engpässe

  • Unzureichende Tests der Implementierungen.
  • Veraltete Dokumentation.
  • Mangelnde Modularität in der Codebasis.
Komplexität der ArchitekturMangelnde Erfahrung im TeamSchwierigkeiten bei der Integration
  • Verwendung von Adaptern ohne klare Schnittstellen.
  • Ignorieren von Sicherheitsanforderungen.
  • Mangelnde Berücksichtigung der Benutzererfahrung.
  • Annahme, dass alle Anforderungen bereits bekannt sind.
  • Glaube, dass die Architektur nicht mehr angepasst werden muss.
  • Übersehen der Bedeutung von Tests.
Kenntnisse in SoftwarearchitekturErfahrung mit TestmethodenFähigkeit zur Problemanalyse
Anpassungsfähigkeit an sich ändernde AnforderungenErmöglichung von Tests und ValidierungIntegration neuer Technologien und Dienste
  • Einhaltung von Sicherheitsstandards
  • Technologische Einschränkungen der Infrastruktur
  • Regulatorische Anforderungen