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.

2.5 KiB

Programmierparadigmen (Programmiersprachen)

2. Programmiersprachen

Grobe Analyse nach:

  • Imperativitart
    reinfolgebasierte Anweisungen
  • Declarativitaet
    Problemloesungsorientierung
  • Prozeduralitaet
    Kompartmentisierung Algoritmisierung
  • Objektorientierung
    Unterstuetzung von Objekten, Klassen und Vererbungen
  • Funktionialitaet
    Funktionserzeugung & -anwendung
  • Typisierung
    (fehlende) Festlegung von Parametern & Rueckgabewerten

Java

  • imperative, prozedurale und objektorientierte Programmiersprache
  • typisierte Sprache

C

  • typische imperative Sprache (begruendet durch Hardwarenaehe)
  • ist prozedural
  • typisierte Programmiersprache

Python

  • imperativ
  • unterstuetzt objektorientierte als auch prozedurale und funktionale Programmierung
  • unterstuetzt Typisierung

go

  • imperative und objektorientierte Programmiersprache
  • bietet Typisierung

JavaScript

  • imperative, funktionale und objektorientierte Programmiersprache
  • ist typisiert

TypeScript

  • imparative, funktionale und objektorientierte Sprache
  • typisierte Programmiersprache

3. Programmierprinzipien

LoD

Law of Demeter
Sprich nur zu deinen engsten Freunden

  • Objekte sollen zur Verständlichkeit und Stetigkeit nur Methoden von ihnen bekannten Objekten aufrufen

DRY

Don't Repeat Yourself
Vermeide Wiederholungen

  • Durch Vermeidung von Duplikationen wird spätere Modifikation erleichtert
  • Erhöht die Verständlichkeit

RY

Repeat Yourself
Wiederhole dich

  • Benutzerschnittstellen sollten konsistent ähnlich aufgebaut sein
  • Erleichterung der Bedienung und Vermeidung von Bedienungsfehlern

DAU

Duemmster Anzunehmender User

  • Synonyme dafür:
    • BDU (Brain Dead User)
    • Error -40 (Implikation: Der Fehler sitzt -40 cm "hinter" dem Desktop, bzw vor dem Computer)
    • EIFOK (Error In Front Of Keyboard)
    • PICNIC _(Problem In Chair Not In Computer)
    • PEBKAC (Problem Exists Between Keyboard And Chair)
  • Anwendbarkeit von Programmen sollte intuitiv sein
  • Verdeutlichung, dass Nutzer meist kein Hintergrundwissen zur Funktion haben und somit viele für Devs logische Ablaeufe nicht nachvollziehen koennen

SoC

Separation of Concerns
Aufteilung von verschiedenen Belangen in Unterprogramme/Sektionen

  • Form von Abstraktion und Kompartmentisierung um Programme, Deployment und Erweiterung zu vereinfachen