15. Juli 2023

Clean Code – Erweiterbarkeit – Teil 1

In dieser Folge sprechen wir über Erweiterbarkeit von Software-Systemen. Wir diskutieren Ansätze wie die Boy Scout Rule, iterative Entwicklung und Komponentenorientierung. Außerdem beleuchten wir die Bedeutung der Trennung von Business-Logik und Integrationstechniken. Abschließend erläutern wir den Test-First-Ansatz. Hört rein für weitere spannende Themen!
Macht der Craft
Clean Code - Erweiterbarkeit - Teil 1
Loading
/

Show Notes

Macht der Craft
Clean Code - Erweiterbarkeit - Teil 1
Loading
/

In dieser Folge sprechen wir über das Thema Erweiterbarkeit von Software-Systemen. Wir erklären, dass Erweiterbarkeit die Fähigkeit ist, neue Funktionalitäten problemlos hinzuzufügen und zu implementieren. Im Vergleich zur Änderbarkeit, bei der bestehender Code angepasst wird, geht es bei der Erweiterbarkeit darum, neue Funktionen hinzuzufügen.

Ein Ansatz zur Förderung der Erweiterbarkeit ist die Boy Scout Rule, bei der kleinere Verbesserungen am Code vorgenommen werden, um ihn lesbarer und wartungsfreundlicher zu machen. Ein inkrementeller Ansatz, bei dem neue Funktionen schrittweise hinzugefügt werden, wird ebenfalls empfohlen, anstatt parallel mehrere Features zu entwickeln.

Wir diskutieren über die iterative Entwicklung und wie wichtig es ist, sich auf eine Aufgabe nach der anderen zu konzentrieren, um ungewollte Abhängigkeiten zu vermeiden. Eine angemessene Planung ist hierbei ebenfalls von Bedeutung. Es ist ratsam, Flexibilität zuzulassen und nicht alles bis ins kleinste Detail im Voraus festzulegen, da sich Anforderungen im Laufe der Entwicklung ändern können.

Unser Fokus liegt darauf, die Kundengedanken in den Vordergrund zu stellen und die Anwendung entsprechend zu strukturieren. Die Komponentenorientierung ist ein architektonisches Konzept, bei dem die Anwendung so aufgebaut wird, dass sie die Realität des Kunden widerspiegelt. Durch die Aufteilung der Anwendung nach Fachlichkeit und die Strukturierung des Source Codes in Packages können jederzeit neue Komponenten oder Module hinzugefügt werden, ohne bestehende zu verändern. Dies ermöglicht eine hohe Erweiterbarkeit und Flexibilität.

Wir sind der Ansicht, dass Microservices sinnvoll sind, wenn Skalierung oder spezifische Anforderungen es erfordern. Dabei beginnen wir nicht direkt mit einem riesigen Microservice-System, sondern modularisieren Module, die später zu Microservices werden können. Dadurch bleibt das System weniger komplex und besser beherrschbar.

In Bezug auf die Softwareentwicklung betonen wir die Wichtigkeit der Trennung der Business-Logik von den Methoden, die diese Logik aufrufen. Durch diese Trennung wird der Code übersichtlicher und einfacher zu lesen. Wir wenden diese Herangehensweise bereits unbewusst an und refaktorisieren den Code, um die Business-Logik in separate Funktionen auszulagern. Dies erleichtert das Verständnis und die Fehlerbehebung.

Wir diskutieren auch die Vorteile von Integrationstechniken und der Nutzung von Komposition anstelle von Vererbung in der objektorientierten Programmierung. Klare Integrationsmethoden und eine modulare Auslagerung der Business-Logik führen zu einer besseren Lesbarkeit und Verständlichkeit des Codes.

Abschließend sprechen wir über den Test-First-Ansatz und warum wir große Fans davon sind. Durch die Verwendung von Tests von Anfang an können wir sicherstellen, dass nur das implementiert wird, was tatsächlich benötigt wird, und dass bereits existierender Code weiterhin wie gewünscht funktioniert. Dies gibt uns Sicherheit und erleichtert die Erweiterung des Systems.

Insgesamt haben wir in dieser Folge viel über Erweiterbarkeit gelernt und verschiedene Methoden besprochen, die uns dabei helfen können. Bleibt dran und abonniert unseren Podcast für weitere spannende Themen. Bis zum nächsten Mal! Ciao.

 

0:00:11 Einführung: Willkommen zur heutigen Folge von „Der Macht der Kraft“
0:00:39 Diskussion über Änderbarkeit und Erweiterbarkeit
0:01:42 Ziel: Neue Funktionalität statt Veränderung
0:03:05 Die Boy Scout Rule für erweiterbaren Code
0:06:03 Boy Scout Mentalität für verbesserte Codequalität und Erweiterbarkeit
0:06:33 Inkrementelles Vorgehen für Erweiterbarkeit
0:08:27 Planung in Maß und schrittweise Anforderungsänderungen
0:10:29 Komponentenorientierung für Kundenfunktionalität und Erweiterbarkeit
0:16:38 Vorteile des Microservice-Ansatzes bei Skalierung
0:18:05 Flexibilität bei Code-Erweiterung durch parallele Komponenten
0:21:11 Integration-Operation-Segregation Principle fördert Code-Lesbarkeit und -Verständnis
0:27:48 Probleme mit Business-Logik und Code-Wiederverwendung
0:29:25 Wiederverwendung in der objektorientierten Programmierung
0:29:48 Teamkomposition vs. Vererbung
0:32:34 Vererbung vs. Encapsulation
0:34:38 Test First – Ein besseres Gesamtdesign durch Tests
0:36:27 Anforderungen in schriftlicher Form versus mündliche Anforderungen
0:38:44 Implementierung basierend auf den benötigten Tests
0:41:15 Vorteile der Test Suite für die Erweiterung einer Anwendung
0:43:29 Wichtigkeit von Tests für die Erweiterbarkeit der Anwendung

Transkript hier einfügen

Bleibe in Kontakt, Abonniere unsere Newsletter

Wir senden dir dann gelegentlich, wichtige Informationen und Updates
Hinweis: Du kannst Deine Einwilligung jederzeit für die Zukunft per E-Mail an mdc at soler minus sanandres dot net widerrufen. Detaillierte Informationen zum Umgang mit Nutzerdaten findest du in unserer Datenschutzerklärung

Die beste Möglichkeit nichts zu verpassen

Nutze die Schaltflächen weiter unten, um den Podcast mit dein Lieblingsanbieter zu abonnieren. Es lohnt sich.

Neue Episoden

Wir veröffentlichen etwa eine Folge pro Monat.

Möchtest du dabei sein?