28.7.2021 |

Notizen zum Webinar "Grundlagen zeitgemäßer Architektur"

Als Teil der Techlounge Summer Edition fand am 21.07.2021 das Webinar Grundlagen zeitgemäßer Architektur mit Golo Roden und Noah Hummel statt.

Hier sind ein paar Notizen von diesem Webinar.

Was ist Architektur? Eien langlebige, fundamentale Struktur der Software. Ziele sind es Nachhaltigkeit, Agilität, Planbarkeit und hohe Qualität sicherzustellen.

Architektonische Entscheidungen sind solche, die man früh treffen muss. Man sollte sich nicht von Details aufhalten lassen, allerdings gibt es einen Zeitpunkt, an dem auch Details geklärt werden müssen, so dass Entscheidungen nicht verschleppt werden ("sich offen halten").

Als Entwickler tendiert man dazu, technische Entscheidungen zu treffen - aber grundsätzlich geht es darum, ein Business-Problem (fachliches Problem) zu lösen.

Architektur ist an sich technologie-übergreifend, daher sollte eine Wahl für eine Sprache, Plattform oder ein Framework nicht unbedingt die Architektur vorgeben.

Beispiele für eine technische Struktur: input/output, networking, exception handling.
Beispiele für eine fachliche Struktur: Gruppierung nach Funktionalität für den Endnutzer.

Micro-services sind eine Möglichkeit, wie man fachlich "schneiden" kann. Sie sind aber nicht erforderlich, um eine fachlich gute Architektur zu bauen.

Man sollte sich als erstes Gedanken dazu machen, welche Funktionen das Programm erfüllen soll ("was")? Erst danach sollte man das "wie" klären.

Mach dir klar, wie die Domain funktioniert und schaue über den technologischen Tellerrand.

DDD, design thinking, etc. sind Werkzeuge, um dies umzusetzen, aber nicht absolut erforderlich.

Was ist System-Architektur? Alles, was ausserhalb des Prozesses stattfindet, z.B. Server-Client-Modell (Webanwendung).
Was ist Software-Architektur? Was innerhalb des Prozesses stattfindet.

Kopplung der Software ist notwendig. Versuche, nur die Dinge, die (fachlich) zusammengehören, aneinander zu binden.
Kohäsion ist die Frage, wie stark Dinge zusammengehörig sind.
Das Ziel ist es, eine geringe Kopplung und eine hohe Kohäsion zu erreichen.

Die Aufgabe des Software-Architekten ist es, valide generische (technische) Lösungen zu finden, ohne in die fachlichen Prozesse einzugreifen. Es ist nicht unsere Aufgabe, fachliche Prozessoptimierung zu betreiben.

Es gibt nicht "die eine" richtige Architektur.

Lesequellen:

Zur Übersicht
Sophia Brandt

Mehr vom Devsquad...

Jonathan Zbick

How to debug wireless with Xcode

Patrick Schaper

Java 16 - was ist neu? was ist anders?

Hallo

Wir sind für Sie da und freuen uns auf Ihre Fragen oder Ihr Feedback.