From e4a878c58da7ebe8bd9470a86c3d5535e04a6203 Mon Sep 17 00:00:00 2001 From: sandro welte Date: Sun, 5 Nov 2023 14:47:55 +0100 Subject: [PATCH] Programmierparadigmen --- Programmierparadigmen.md | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md index 0c602b8..e0e5973 100644 --- a/Programmierparadigmen.md +++ b/Programmierparadigmen.md @@ -137,6 +137,65 @@ Skalierbarkeit/Wartbarkeit -> Durch Einführung OOP +### SOLID + +# Separations of Concern + +Eine Klasse sollte nur für eine Funktion verantwortlich sein. + +# Open/Closed Principle + +Offen für Erweiterungen, aber geschlossen für Modifikationen. + + +# Liskov Substitution Principle + +Objekte einer abgeleiteten Klasse sollte ohne, dass die Funktionalität des Programms eingeschränkt wird, anstelle von Objekten der Basisklasse verwendet werden können. + +# Interface Segregation Principle + +Clients sollten nicht von Schnittstellen abhängig sein, welche nicht verwendet werden. + + +# Dependency Inversion Principle + +Module sollten nicht von einander abhänig sein, sondern von abstrakten Schnittstellen. + + + + + + +### STUPID + +# Singelton + +Es wird nur ein Objekt in einer Klasse erzeugt, wenn diese global zur Verfügung stehen, kann das die Testbarkeit beeinträchtigen. + +# Tight Coupling + +Teile die nichts miteinander zu tun haben, sind dennoch eng miteinander verbunden. Dies sollte nicht geschehen. + +# Untestability + +Untestbarkeit z.B. aufgrund von Tight Coupling, was zu Qualitätsverlust des Codes führen kann. + +# Premature Optimization + +Man sollte erst etwas Optimieren, wenn es auch nötig ist, sonst verschwendet man viel Zeit. + +# Indescriptive Naming + +Wenn man etwas ungenau benennt, kann das für andere Programmierer, die den Code ansehen, Probleme mit der Nachvollziehbarkeit machen. + +# Duplication + +Man sollte denselben Code nicht doppeln, da man jedes mal, wenn man etwas am Original verändert, auch bei den gedoppelten Codes die Veränderung vornehmen muss. + + + + +