Hexagonale Architektur
Ein Architekturansatz, der die Trennung von Geschäftslogik und Infrastruktur fördert.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
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.
✔Vorteile
- Erhöhte Flexibilität bei der Anpassung an neue Anforderungen
- Verbesserte Testbarkeit der Anwendung
- Bessere Wartbarkeit durch klare Struktur
✖Limitationen
- 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
Trade-offs
Metriken
- 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.
Beispiele & Implementierungen
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.
Implementierungsschritte
Anforderungen sammeln und analysieren.
Architekturdesign erstellen.
Implementierung der Module und Adapter.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unzureichende Tests der Implementierungen.
- Veraltete Dokumentation.
- Mangelnde Modularität in der Codebasis.
Bekannte Engpässe
Beispiele für Missbrauch
- Verwendung von Adaptern ohne klare Schnittstellen.
- Ignorieren von Sicherheitsanforderungen.
- Mangelnde Berücksichtigung der Benutzererfahrung.
Typische Fallen
- Annahme, dass alle Anforderungen bereits bekannt sind.
- Glaube, dass die Architektur nicht mehr angepasst werden muss.
- Übersehen der Bedeutung von Tests.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Einhaltung von Sicherheitsstandards
- • Technologische Einschränkungen der Infrastruktur
- • Regulatorische Anforderungen