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
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