From 2f23ca5ee2be9845a2d6345488b38e247a180cbb Mon Sep 17 00:00:00 2001 From: fdai7715 Date: Mon, 6 Nov 2023 17:33:28 +0000 Subject: [PATCH] =?UTF-8?q?die=20restlichen=20Programmierprinzipien=20eing?= =?UTF-8?q?ef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Programmierparadigmen.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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 +