Dienstag, 18. August 2020

SOLID-Prinzipien in der Softwareentwicklung

Die SOLID-Prinzipien berufen sich auf die von Robert C. Martin in CleanCode beschriebenen Entwurfsmethoden einzelner Klassen. Was bedeutet das jetzt für uns?

Was bedeutet "SOLID"?

S = SRP: SingleResponsibilityPrinciple 

Jede Klasse hat nur eine Aufgabe. Die Methoden der Klasse sind einzig für die Aufgabe allein verwendet

O = OCP: OpenClosePrinciple



Klassen sind...

...gegenüber Veränderungen geschlossen (close), sie sind aber für Erweiterungen offen (open)

L = LSP: LiskovSubstitutionPrinciple
Abgeleitete Klassen müssen Grundsätzlich für ihre Oberklassen eingesetzt werden können

I = ISP: InterfaceSegregationPrinciple
Interfaces sollten möglichst klein gehalten werden. Große Interfaces werden in mehrere kleine zerlegt.

D = DIP: DependencyInversionPrinciple
Klassen eines höheren Abstraktionslevel sind nicht von Klassen mit niederem Abstraktionslever abhängig. Es gibt keine Abhängigkeiten zu Klassen, sonder nur zu Interfaces.


Warum sind diese SOLID-Prinzipien wichtig für uns?

Code zu schreiben geht uns als Softwareentwickler leicht von der Hand, denn es ist unser Daily Business. Der aufwändigste Teil der Arbeit als Softwareentwickler ist die Wartung von Softwareprojekten und genau hier kommen die SOLID-Prinzipien zum Tragen. Quellcode soll einfach zu lesen und zu verstehen sein. Fehler in komplexen Strukturen zu finden und zu beheben sorgt schnell für neue Fehler, da der Quellcode nicht komplett verstanden wurde.

Wird beim Aufsetzen eines neuen Softwareprojekts an der Codequalität (CleanCode) gespart, wird die Wartung des Projektes um ein Vielfaches teurer. Komplexer Code führt dazu, dass die Realisierung von neuen Features langsamer vorangeht und Termine nicht eingehalten werden können (technische Schulden).

Fazit

Es gibt immer eine Ausrede gerade keinen guten schreiben zu können. Doch es sind nur Ausreden, da es keine trifftige Begründung gibt. So gibt es wichtige Regel beim Schreiben von Code zu beachten:

"Wenn Du es nicht in fünf Minuten erklären kannst, hast Du es entweder selbst nicht verstanden, oder es funktioniert nicht."