|
@ -0,0 +1,53 @@ |
|
|
|
|
|
|
|
|
|
|
|
# Programmierparadigmen Übung (07.11.22) |
|
|
|
|
|
|
|
|
|
|
|
### Java |
|
|
|
|
|
|
|
|
|
|
|
- Objektorientierte, Funktionale (ab Version 8) und typisierte Programmiersprache |
|
|
|
|
|
- Objektorientiert: Kapselung von (Zustands-) Daten und Methoden |
|
|
|
|
|
- Vorteil: bessere Strukturierung, bessere Testbarkeit, Wiederverwendbar von Programmteilen |
|
|
|
|
|
- Funktional: Verfeinerung des deklarativen Paradigmas |
|
|
|
|
|
- Vorteil: übersichtliche und effiziente Berechnungen |
|
|
|
|
|
- Nachteile: nur für Berechnungen |
|
|
|
|
|
- Typisiert: Festlegung Art des Datentyps für Variablen sowie Parameter und Rückgabewerte von Prozeduren |
|
|
|
|
|
- Vorteil: Vervollständigungsvorschlage durch IDE, fail fast, gesteigerte Sicherheit bereits im Erstellungsprozess von Software |
|
|
|
|
|
- Nachteil: verwendete Typen müssen zum Programmierzeitpunkt bekannt sein, nachträgliche Änderungen am Typen können bestehenden Code brechen |
|
|
|
|
|
### C |
|
|
|
|
|
|
|
|
|
|
|
- typisierte Programmiersprache |
|
|
|
|
|
- Definition: Festlegung Art des Datentyps für Variablen sowie Parameter und Rückgabewerte von Prozeduren |
|
|
|
|
|
- Vorteil: Vervollständigungsvorschlage durch IDE, fail fast, gesteigerte Sicherheit bereits im Erstellungsprozess von Software |
|
|
|
|
|
- Nachteil: verwendete Typen müssen zum Programmierzeitpunkt bekannt sein, nachträgliche Änderungen am Typen können bestehenden Code brechen |
|
|
|
|
|
|
|
|
|
|
|
### Phyton |
|
|
|
|
|
|
|
|
|
|
|
- typisierte Programmiersprache |
|
|
|
|
|
- Definition: Festlegung Art des Datentyps für Variablen sowie Parameter und Rückgabewerte von Prozeduren |
|
|
|
|
|
- Vorteil: Vervollständigungsvorschlage durch IDE, fail fast, gesteigerte Sicherheit bereits im Erstellungsprozess von Software |
|
|
|
|
|
- Nachteil: verwendete Typen müssen zum Programmierzeitpunkt bekannt sein, nachträgliche Änderungen am Typen können bestehenden Code brechen |
|
|
|
|
|
### Go |
|
|
|
|
|
|
|
|
|
|
|
- typisierte Programmiersprache |
|
|
|
|
|
- Definition: Festlegung Art des Datentyps für Variablen sowie Parameter und Rückgabewerte von Prozeduren |
|
|
|
|
|
- Vorteil: Vervollständigungsvorschlage durch IDE, fail fast, gesteigerte Sicherheit bereits im Erstellungsprozess von Software |
|
|
|
|
|
- Nachteil: verwendete Typen müssen zum Programmierzeitpunkt bekannt sein, nachträgliche Änderungen am Typen können bestehenden Code brechen |
|
|
|
|
|
### JavaScript |
|
|
|
|
|
|
|
|
|
|
|
- typenlose Programmiersprache |
|
|
|
|
|
- Definition: Der Typ von Variablen, Parametern und Rückgabewerten wird nicht festgelegt |
|
|
|
|
|
- Vorteil: nur faktische Kompatibilität, implizite Konvertierung |
|
|
|
|
|
- Nachteil: Typenfehler treten erst zur Laufzeit des Programms auf |
|
|
|
|
|
|
|
|
|
|
|
### TypeScript |
|
|
|
|
|
|
|
|
|
|
|
- typisierte Programmiersprache |
|
|
|
|
|
- Definition: Festlegung Art des Datentyps für Variablen sowie Parameter und Rückgabewerte von Prozeduren |
|
|
|
|
|
- Vorteil: Vervollständigungsvorschlage durch IDE, fail fast, gesteigerte Sicherheit bereits im Erstellungsprozess von Software |
|
|
|
|
|
- Nachteil: verwendete Typen müssen zum Programmierzeitpunkt bekannt sein, nachträgliche Änderungen am Typen können bestehenden Code brechen |
|
|
|
|
|
|
|
|
|
|
|
### weitere Programmierprinzipien |
|
|
|
|
|
|
|
|
|
|
|
- Single Responsibility Prinzip: Kernaussage des Prinzips ist, dass jede Klasse nur genau eine fest definierte Aufgabe zu erfüllen hat |
|
|
|
|
|
- Continuity: Schreibe den Code so, dass minimale Änderungen auch nur minimale Folgen für den Code haben |
|
|
|
|
|
- Writability: Verwende ein Programmierwerkzeug/tool, welches dich beim Schreiben des Codes unterstützt |
|
|
|
|
|
- Customizability: Konstante Werte sollten im Allgemeinen nicht direkt in den Code eingefügt werden, sondern als konstante Werte separat definiert werden |