diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md index 511591e..1086cff 100644 --- a/Programmierparadigmen.md +++ b/Programmierparadigmen.md @@ -80,4 +80,23 @@ Außerdem werde ich die Programmierprinzipien KISS, FCoH, SLA, YAGNI, IOC und DI ### SLA - kurz für Single Layer of Abstraction - bedeutet, dass in jedem Codeabschnitt auf dem gleichen Abstraktionslevel gearbeitet werden soll -- +- praxisnäher: eine Codeeinheit hat genau eine Aufgabe, und beispielsweise nichts mit Ausgaben oder genauer Fehlerbehandlung zu tun wenn etwas berechnet wird + +### YAGNI +- kurz für You Ain’t Gonna Need It +- bedeutet einfach nur, dass nichts implementiert werden soll, was nicht in den Anforderungen steht +- klingt einfach umsetzbar, wird aber leicht im Überschwung vergessen (zumindest bei mir als Testobjekt) +- ein vermutlich guter Tipp ist das Erinnern an noch zu erledingende Dinge und das Zeitfenster + +### IOC +- kurz für Inversion of Control +- eine Sonderform ist DI - Dependency Injection +- bedeutet, dass der Verlauf des Programmes von der Stelle aus gesteuert werden sollte, die auch dafür zuständig ist +- diese Stelle kann dann Konfigurationen, Abhängigkeiten oder Argumente zur Steuerung übergeben +- dadurch wird der Code dynamischer + +### DI +- kurz für Dependency Injection +- bedeutet einfach nur, dass Codeteile dynamischer gestaltet werden können, wenn ihnen Abhängigkeiten übergeben werden +- falls diese Codeteile die Abhängigkeiten selbst in Form von beispielsweise Objekten erzeugen, wird der Code undynamischer, abhängiger und schlechter testbar +