diff --git a/programmierparadigmen.md b/programmierparadigmen.md index d8cdedb..aeb07f9 100644 --- a/programmierparadigmen.md +++ b/programmierparadigmen.md @@ -31,7 +31,7 @@ Grobe Analyse nach: - imperative und objektorientierte Programmiersprache - bietet Typisierung ### JavaScript -- imperative, funktionale, objektorientierte und funktionale Programmiersprache +- imperative, funktionale und objektorientierte Programmiersprache - ist typisiert ### TypeScript - imparative, funktionale und objektorientierte Sprache @@ -41,5 +41,30 @@ Grobe Analyse nach: ## 3. Programmierprinzipien ### LoD --_L_aw _o_f _D_emeter - +**L**aw **o**f **D**emeter \ +*Sprich nur zu deinen engsten Freunden* +- Objekte sollen zur Verständlichkeit und Stetigkeit nur Methoden von ihnen bekannten Objekten aufrufen +### DRY +**D**on't **R**epeat **Y**ourself \ +*Vermeide Wiederholungen* +- Durch Vermeidung von Duplikationen wird spätere Modifikation erleichtert +- Erhöht die Verständlichkeit +### RY +**R**epeat **Y**ourself \ +*Wiederhole dich* +- Benutzerschnittstellen sollten konsistent ähnlich aufgebaut sein +- Erleichterung der Bedienung und Vermeidung von Bedienungsfehlern +### DAU +**D**uemmster **A**nzunehmender **U**ser +- Synonyme dafür: + - BDU *(**B**rain **D**ead **U**ser)* + - Error -40 *(Implikation: Der Fehler sitzt -40 cm "hinter" dem Desktop, bzw vor dem Computer)* + - EIFOK *(**E**rror **I**n **F**ront **O**f **K**eyboard)* + - PICNIC _*(**P**roblem **I**n **C**hair **N**ot **I**n **C**omputer)* + - PEBKAC *(**P**roblem **E**xists **B**etween **K**eyboard **A**nd **C**hair)* +- Anwendbarkeit von Programmen sollte intuitiv sein +- Verdeutlichung, dass Nutzer meist kein Hintergrundwissen zur Funktion haben und somit viele für Devs logische Ablaeufe nicht nachvollziehen koennen +### SoC +**S**eparation **o**f **C**oncerns \ +*Aufteilung von verschiedenen Belangen in Unterprogramme/Sektionen* +- Form von Abstraktion und Kompartmentisierung um Programme, Deployment und Erweiterung zu vereinfachen \ No newline at end of file