From 2127a169dda06b542aae7f9514ce75d00e99358f Mon Sep 17 00:00:00 2001 From: fdai7801 Date: Thu, 9 Nov 2023 00:53:50 +0100 Subject: [PATCH] neue Teil --- Programmierparadigmen.md | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Programmierparadigmen.md diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md new file mode 100644 index 0000000..b3bbdbf --- /dev/null +++ b/Programmierparadigmen.md @@ -0,0 +1,59 @@ +## Programmiersprachen + +###Java: + +* Paradigmen: Hauptsächlich objektorientiert, unterstützt aber auch Aspekte der funktionalen Programmierung. +* Typsystem: Statisch typisiert. +* Memory Management: Verwendet Garbage Collection zur automatischen Speicherverwaltung. +* Bibliotheken und Frameworks: Hat eine reichhaltige Standardbibliothek und unterstützt zahlreiche Frameworks, darunter Spring und Hibernate. +* Anwendungsbereiche: Häufig verwendet für Enterprise-Anwendungen, Android-App-Entwicklung und Webanwendungen. + +###C: + +* Paradigmen: Hauptsächlich prozedural und imperativ. +* Typsystem: Statisch typisiert. +* Memory Management: Manuelle Speicherverwaltung, was potenziell zu Speicherlecks führen kann. +* Bibliotheken und Frameworks: Hat eine Standardbibliothek, aber weniger umfangreich als andere Sprachen. +* Anwendungsbereiche: Systemprogrammierung, Embedded-Systeme, Betriebssysteme. + +###Python: + +* Paradigmen: Multiparadigmen, darunter objektorientiert und funktional. +* Typsystem: Dynamisch typisiert. +* Memory Management: Verwendet Garbage Collection zur automatischen Speicherverwaltung. +* Bibliotheken und Frameworks: Bietet eine umfangreiche Standardbibliothek und unterstützt zahlreiche Frameworks wie Django und Flask. +* Anwendungsbereiche: Webentwicklung, wissenschaftliches Rechnen, Automatisierung. + +###Go (Golang): + +* Paradigmen: Hauptsächlich imperativ und konkurrierend. +* Typsystem: Statisch typisiert. +* Memory Management: Verwendet Garbage Collection zur automatischen Speicherverwaltung, ist jedoch für eine bessere Leistung optimiert. +* Bibliotheken und Frameworks: Hat eine effiziente Standardbibliothek und wird in der Cloud-Entwicklung (z.B. Docker, Kubernetes) eingesetzt. +* Anwendungsbereiche: Serverseitige Entwicklung, Netzwerkanwendungen. + +###JavaScript: + +* Paradigmen: Hauptsächlich objektorientiert, unterstützt jedoch auch funktionale Programmierung. +* Typsystem: Schwach typisiert (dynamisch) und verwendet Typumwandlungen. +* Memory Management: Verwendet Garbage Collection zur automatischen Speicherverwaltung. +* Bibliotheken und Frameworks: Hat eine Vielzahl von Bibliotheken und Frameworks, einschließlich React, Angular und Vue.js. +* Anwendungsbereiche: Webentwicklung, sowohl auf der Server- als auch auf der Clientseite. + +###TypeScript: + +* Paradigmen: Eine typisierte Übermenge von JavaScript, die die Vorteile der statischen Typisierung bietet. +* Typsystem: Statisch typisiert, was zu sicherem Code und besseren Entwicklungspraktiken führt. +* Memory Management: Wie JavaScript, da es eine Erweiterung von JavaScript ist. +* Bibliotheken und Frameworks: Kann alle JavaScript-Bibliotheken und -Frameworks verwenden und bietet statische Typprüfung. +* Anwendungsbereiche: Webentwicklung, insbesondere für größere und komplexe Projekte. + +##Progammierprinzipien + +* DRY (Don't Repeat Yourself): Dieses Prinzip besagt, dass Code nicht dupliziert werden sollte, um die Wartbarkeit und Erweiterbarkeit zu verbessern. +* KISS (Keep It Simple, Stupid): Dieses Prinzip fördert die Einfachheit im Design und die Vermeidung von übermäßiger Komplexität. +* YAGNI (You Aren't Gonna Need It): Dieses Prinzip rät davon ab, unnötigen Code oder Funktionalität im Voraus zu implementieren. +* SOLID: besteht aus fünf Designprinzipien zur Verbesserung der Softwarearchitektur. +* Clean Code: Ein Grundsatz, der die Bedeutung von sauberem, verständlichem und gut strukturiertem Code betont. +* TDD (Test-Driven Development): Dieses Prinzip fördert die Entwicklung von Tests vor der eigentlichen Implementierung, um die Qualität und Zuverlässigkeit des Codes sicherzustellen. +* Design by Contract: Ein Prinzip, bei dem Verträge zwischen Teilen eines Systems definiert werden, um sicherzustellen, dass die Schnittstellen korrekt verwendet werden.