You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.0 KiB

Analyse der Programmiersprachen

Java

  • Paradigma: Hauptsächlich Objektorientiert, unterstützt auch imperative und prozedurale Programmierung.
  • Vorteile: Starke Typisierung, gute Wiederverwendbarkeit von Code, fördert modulare Programmierung.
  • Nachteile: Weniger geeignet für funktionale Programmierung, kann umständlicher sein für kleine Projekte.

C

  • Paradigma: Imperativ und prozedural.
  • Vorteile: Nähe zur Hardware, hohe Performance, Kontrolle über Speichermanagement.
  • Nachteile: Keine Unterstützung für objektorientierte oder funktionale Programmierung, höheres Risiko für Speicherfehler.

Python

  • Paradigma: Multiparadigmatisch – unterstützt objektorientierte, imperative, prozedurale und in begrenztem Maße funktionale Programmierung.
  • Vorteile: Einfache Syntax, vielseitig einsetzbar, große Standardbibliothek.
  • Nachteile: Langsamer als kompilierte Sprachen, dynamische Typisierung kann zu Laufzeitfehlern führen.

Go

  • Paradigma: Hauptsächlich prozedural und imperativ, mit einigen Elementen aus der objektorientierten Programmierung.
  • Vorteile: Einfache Syntax, gute Unterstützung für Nebenläufigkeit (Concurrency), effiziente Speicherverwaltung.
  • Nachteile: Eingeschränkte Generika-Unterstützung, fehlende Funktionen für objektorientierte Programmierung im Vergleich zu anderen Sprachen.

JavaScript

  • Paradigma: Hauptsächlich objektorientiert und funktional, unterstützt auch imperative Programmierung.
  • Vorteile: Hohe Flexibilität, dynamische Typisierung, weit verbreitet im Web.
  • Nachteile: Inkonsequenzen im Sprachdesign, dynamische Typisierung kann zu unerwarteten Fehlern führen.

TypeScript

  • Paradigma: Objektorientiert, funktional und imperativ; Erweiterung von JavaScript.
  • Vorteile: Statische Typisierung für JavaScript, bessere Tools zur Fehlerfindung zur Entwicklungszeit, kompatibel mit JavaScript.
  • Nachteile: Erfordert Kompilierung, kann in komplexen Projekten zusätzliche Komplexität einführen.

Programmierprinzipien

1. SOLID

  • Langbezeichnung: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion
  • Beschreibung: Fünf zentrale Prinzipien der objektorientierten Programmierung und des Software-Designs. Sie unterstützen die Entwicklung von wartbarer, verständlicher und erweiterbarer Software.

2. DRY

  • Langbezeichnung: Don't Repeat Yourself
  • Beschreibung: Dieses Prinzip zielt darauf ab, Wiederholungen von Softwaremustern zu vermeiden. Es verbessert die Wartbarkeit, indem Redundanzen im Code reduziert werden.

3. TDD

  • Langbezeichnung: Test-Driven Development
  • Beschreibung: Ein Ansatz in der Softwareentwicklung, bei dem Tests vor der Implementierung des eigentlichen Codes geschrieben werden, um sauberen und fehlerfreien Code zu fördern.

4. BDD

  • Langbezeichnung: Behavior-Driven Development
  • Beschreibung: Eine Weiterentwicklung von TDD, die darauf fokussiert ist, das Verhalten einer Softwareanwendung durch beispielhafte Szenarien in verständlicher Sprache zu definieren.

5. LSP

  • Langbezeichnung: Liskov Substitution Principle
  • Beschreibung: Ein Prinzip des SOLID-Prinzips, das aussagt, dass Objekte einer Superklasse durch Objekte ihrer Unterklassen ersetzt werden können, ohne die Funktionalität des Programms zu beeinträchtigen.

6. CCP

  • Langbezeichnung: Common Closure Principle
  • Beschreibung: Klassen, die sich gemeinsam ändern, sollten in einem Paket gruppiert werden. Dadurch werden unbeabsichtigte Auswirkungen auf andere Softwareteile minimiert.

7. CRP

  • Langbezeichnung: Common Reuse Principle
  • Beschreibung: Empfiehlt, dass Klassen, die in einem Paket gruppiert sind, gemeinsam wiederverwendet werden sollten, um unerwünschte Abhängigkeiten zu vermeiden.

8. OCP

  • Langbezeichnung: Open-Closed Principle
  • Beschreibung: Ein weiteres SOLID-Prinzip, das besagt, dass Softwarekomponenten für Erweiterungen offen, jedoch für Modifikationen geschlossen sein sollten.