diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md new file mode 100644 index 0000000..713382d --- /dev/null +++ b/Programmierparadigmen.md @@ -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