39100 Bozen
Bruno Buozzi 8
Tech Talks South Tyrol
Die Themen der Vorträge decken ein breites Spektrum ab – von Webentwicklung und mobilen Apps bis hin zu DevOps und maschinellem Lernen.
Dieses Mal durfte Konverto einen Tech Talk hosten. Über 40 Gäste aus ganz Südtirol waren beim Event mit dabei.
Ein Talk des Events wurde von einem Team des Konverto Development Center vorgetragen. Samuel Runggaldier und Peter Unterthurner sprachen über eine besondere Form der Systemarchitektur, welche sie bereits erfolgreich in Softwareprojekten von Konverto umsetzen konnten: Hexagonale Architektur
Was ist Hexagonale Architektur?
Die hexagonale Architektur ist ein Ansatz zur Softwareentwicklung, der darauf abzielt, die wichtigsten Abläufe einer Anwendung, also das, was die Software für den Kunden leisten soll, von den technischen Details, wie der Benutzeroberfläche oder der Datenbank, zu trennen. Dadurch bleibt die Kernfunktion der Software flexibel und unabhängig von äußeren Systemen.
Erstmals beschrieben wurde die Architektur 2004 von Alistair Cockburn, welcher erkannte, dass ein nicht unerheblicher Teil der Softwareprobleme dadurch ausgelöst wird, dass sich die Prozesse im Inneren der Applikation übermäßig mit den Eigenheiten der Nutzeroberfläche beschäftigt. Idealerweise sollte es jedoch egal sein, wie die Endnutzer mit der Software interagieren, da sich die Aufgaben, welche die Software zu lösen versucht, nicht dadurch ändern, welche Form der Ein- und Ausgabe der Daten verwendet wird.
Um dieses Problem zu lösen, wird eine klare Trennung zwischen Applikation und Außenwelt eingebaut. Um mit der Applikation zu kommunizieren, werden von dieser Einstiegspunkte definiert, sogenannte Ports, welche genau diktieren, wie die Anfrage und Daten aussehen müssen, damit diese akzeptiert und verarbeitet werden. Ähnlich einer Steckdose wird vorgeschrieben, wie der Stecker aussehen muss, wenn sich dieser verbinden will.
Aufgrund von Anforderungen und technischen Gegebenheiten ist man jedoch oft in der Situation, wo der sinnbildliche Stecker anders aussieht, als von der Applikation gefordert.
Um diese Brücke zu schließen, werden wie in der Realität Adapter verwenden, deren Aufgabe es ist, die Anfragen so zu übersetzen, dass die Kommunikation zwischen der Außenwelt und Businesslogik möglich ist.
Vorteile
Der große Vorteil dieses Ansatzes ist, dass Änderungen an der Benutzeroberfläche oder den externen Systemen leicht gemacht werden können, ohne die eigentliche Software ändern zu müssen. Man tauscht einfach den entsprechenden Adapter aus. Das sorgt dafür, dass die Software flexibel bleibt und auch bei neuen Anforderungen oder technischen Änderungen nicht komplett überarbeitet werden muss.
Weiteres fördert dieser Stil der Architektur, dass die verschiedenen Workflows im Programm sich so wenig wie möglich gegenseitig beeinflussen. Ein Eingangsport sollte immer eine Aufgabe aus einem Grund für einen Akteur bearbeiten, um unnötige Abhängigkeiten untereinander zu vermeiden.
Eine so realisierte Architektur gewährleistet, dass Projekte auch im fortgeschrittenem Stadium, ohne Einbußen in der Entwicklungsgeschwindigkeit, um neue Features erweitert werden können. Zudem verbessert die hexagonale Architektur die Testbarkeit und Wartbarkeit der Anwendung, was besonders bei langfristigen Projekten wichtig ist.
Mehr Informationen können Sie hier in der PowerPoint nachlesen:
Hexagonal_Architecture.pptx