Web Developer Conference '23 24.08.2023, 11:21 Uhr

Dr. Carola Lilienthal: Die Schönheit von Software kommt von Innen

Warum nicht nur das User Interface einer Software schön aussehen muss, sondern auch innere Schönheit fundamental ist, erklärt die Senior Softwarearchitektin auf der Web Developer Conference '23.
(Quelle: Dr. Carola Lilienthal)
In unserer täglichen Arbeit programmieren wir komplexe Strukturen und versuchen uns in ihnen zurechtzufinden  – sei es im Frontend oder im Backend. Doch diese Komplexität macht uns das Leben schwer - insbesondere, wenn unsere Softwaresysteme über Jahrzehnte weiterentwickelt und gewartet werden sollen.
Die Größe der Aufgabe wir deutlich, wenn man berücksichtigt, dass ein normales Softwaresystem von 250000 Zeilen Code verteilt auf Frontend und Backend normalerweise bereits um die 3000 Klassen umfasst. Diese Klassen arbeiten auf die eine oder andere Weise zusammen, um die gewünschte Funktionalität zu realisieren. In diesen vernetzten Strukturen dürfen wir Fehler beheben und neue Funktionalität hinzufügen.
In unseren Entwicklungsumgebungen arbeiten wir auf einzelnen Source-Files. Wir lassen uns anzeigen, welche anderen Files alle unsere Funktionalität benutzen und können uns Vererbungsbeziehungen anzeigen lassen. Ein Blick auf die gesamte Struktur bekommen wir aber nicht. Häufig haben wir ein Diagramm der Architektur an der Wand hängen oder am Whiteboard gezeichnet. Aber all das sind nur Abbilder der Vorstellungen, die wir beim Entwickeln im Kopf haben. Die wirklichen Strukturen sehen möglicherweise ganz anders aus.
Ein Blick auf die verschiedenen Strukturen, die wir implementiert haben, kann uns viele Einsichten für unsere Arbeit bringen. Schauen wir uns einmal an, was man für bizarre Schönheiten in Softwaresystemen finden kann.
Das folgende Bild stellt einen Klassenzyklus aus 463 Klassen dar. Jedes Rechteck steht für eine Klasse. Die verschiedenen Farben der Klassen machen deutlich, welche Klasse jeweils aus welchem Modul kommt. Wenn man die verschiedenen Farben zählt, dann wird klar, dass sich dieser Zyklus über insgesamt neun Module erstreckt.
Quelle: Dr. Carola Lilienthal
Eine gewisse Schönheit ist dem Bild nicht abzusprechen. Dennoch: Bedenkt man, dass all diese Klassen einen stark gekoppelten Haufen bilden, dann kann einem angst und bange werden. Keine Klasse kann entfernt werden, ohne dass mindestens eine andere umgebaut werden muss. An welchem Ende man auch immer anfasst, man hat das ganze Knäul an der Angel.
Im Endeffekt hängen in diesem System Klassen von der Oberfläche bis zu den Business-Objekten zusammen. Neue Funktionalität landet fast automatisch eher in diesem Zyklus als außerhalb. Das Knäuel wird mit der Zeit immer größer und die Schmerzen bei seiner Bearbeitung auf!
Welch ein Glück, wenn wir auf ein System mit Strukturen treffen, die aus geschichteten Komponenten bestehen! Auf dem folgenden Bild sehen Sie die Module eines Systems als grüne Rechtecke oder Quadrate und auf rechten Seite des Diagramms die Bögen, die die Beziehungen zwischen diesen Modulen darstellen. Grüne Bögen gehen von oben nach unten und rote von unten nach oben. Hier haben wir ein System in dem es ein Oben „Application“ und ein Unten „Core“ gibt.
Quelle: Dr. Carola Lilienthal
Vielleicht ist Ihnen intuitiv oder aufgrund von Dingen, die Sie über Architektur gelernt haben, klar, warum die wohlgeordneten Struktur im zweiten Bild um Längen sinnvoller ist als der verwobene Haufen im ersten.
Mit meinem Vortrag auf der Web Developer Confernce '23, die vom 18. bis 20. September 2023 in Hamburg stattfindet, werde ich Ihnen zusätzlich zeigen, warum das zweite Bild für unser Gehirn und damit unsere Arbeitsgeschwindigkeit eine deutlich bessere Struktur bietet als das erste.
Meine Hoffnung ist, dass Sie nach meinem Vortrag genauso viel Energie in die innere Schönheit des Sourcecodes stecken werden, wie in die Gestaltung der Oberfläche oder die Auswahl des geeigneten UI-Frameworks und des passenden Designsystems. Denn die Schönheit kommt von Innen!
Holen Sie sich gleich Ihr Ticket: https://www.web-developer-conference.de/
Dr. Carola Lilienthal ist Geschäftsführerin und Senior Softwarearchitektin bei der WPS - Workplace Solutions GmbH und analysiert seit 2003 regelmäßig im Auftrag ihrer Kunden die Zukunftsfähigkeit von Softwarearchitekturen. Sie spricht auf Konferenzen und an Universitäten über dieses Thema. 2015 hat sie ihre Erfahrungen aus über hundert Analysen von 20 000 und 15 Mio. LOC in dem Buch „Langlebige Softwarearchitekturen“ zusammengefasst.


Das könnte Sie auch interessieren