|
@ -49,6 +49,8 @@ _Commits_ sind Veränderungen am eventuell bereits bestehenden Code des Projekte |
|
|
|
|
|
|
|
|
### Lernziel |
|
|
### Lernziel |
|
|
|
|
|
|
|
|
|
|
|
#### Vorlesung und Übung |
|
|
|
|
|
|
|
|
- Arten von Programmiersprachen |
|
|
- Arten von Programmiersprachen |
|
|
- Imperative Programmierung |
|
|
- Imperative Programmierung |
|
|
- vor allem am Anfang der Programmierung stark verbreitet |
|
|
- vor allem am Anfang der Programmierung stark verbreitet |
|
@ -184,6 +186,55 @@ _Commits_ sind Veränderungen am eventuell bereits bestehenden Code des Projekte |
|
|
- Duplication of code: |
|
|
- Duplication of code: |
|
|
- Codeblöcke dublizieren sorgt für Änderungsanomalien |
|
|
- Codeblöcke dublizieren sorgt für Änderungsanomalien |
|
|
- Rule of 3 --> auch _nur_ 2 Mal vorhandener Code kann Probleme verursachen! |
|
|
- Rule of 3 --> auch _nur_ 2 Mal vorhandener Code kann Probleme verursachen! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- KISS: |
|
|
|
|
|
- Keep It Simple (and) Stupid |
|
|
|
|
|
- möglichst einachlesbaren Code schreiben --> da weniger fehleranfällig und Code wird oft gelesen |
|
|
|
|
|
|
|
|
|
|
|
- FCoH: |
|
|
|
|
|
- Favor Composition over Inheritance |
|
|
|
|
|
- bei Beziehungen von Klassen genau prüfen ob Vererbung von Nöten ist --> sonst Komposition |
|
|
|
|
|
|
|
|
|
|
|
- SLA: |
|
|
|
|
|
- Single Layer of Abstraction |
|
|
|
|
|
- Methoden sollten genutzt werden um |
|
|
|
|
|
- entweder primitive (Rechen-)operationen durchzuführen |
|
|
|
|
|
- oder andere Methoden aufzurufen |
|
|
|
|
|
|
|
|
|
|
|
- YASNI: |
|
|
|
|
|
- You Aint't Gonna Need It |
|
|
|
|
|
- _nichts machen was man nicht machen muss_ |
|
|
|
|
|
- zusätzliche Fehlerquelle und Arbeit |
|
|
|
|
|
|
|
|
|
|
|
- IoC: |
|
|
|
|
|
- Inversion of Control |
|
|
|
|
|
- Dependencies am Anfang importieren |
|
|
|
|
|
|
|
|
|
|
|
- DI: |
|
|
|
|
|
- Dependency Injection |
|
|
|
|
|
- Entkoppelung von Objekten um Abhängigkeiten zu vermeiden |
|
|
|
|
|
|
|
|
|
|
|
#### Übung |
|
|
|
|
|
|
|
|
|
|
|
- Einordnung von verschienden Programmiersprachen in die obengenannten Programmierparadigmen |
|
|
|
|
|
- Beispiel: |
|
|
|
|
|
- Java und Python |
|
|
|
|
|
- imperativ |
|
|
|
|
|
- objektorient |
|
|
|
|
|
- prozedural |
|
|
|
|
|
- typisiert |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|