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.8 KiB
2.8 KiB
Programmiersprachen:
Java
- imperativ
- Streng typisiert
- objektorientiert
- funktionale Sprache
C
- Imperativ
- Streng typisiert
- Vorteil: Hardwarenähe, Kompatibilität
- Schnelligkeit
- Nachteil: Speicherverwaltung
Phyton
- Imperativ
- Objektorientiert
- Klassen und Objekte
- Hieratchien
- Funktional
- kompakte Syntax
- interpretierte Sprache
- Übersetzung in andere Sprachen möglich (Cython, etc.)
- Portabilität
- Typisierung
- Dynamisch (Duck Typing)
Go
- Modular, imperativ
- breite Palette an Programmierparadigmen
- Teilweise Objektorientiert & Funktional
- keine Vererbung
- statt Klassen werden Structs verwendet
- Einfache, effektive Programmierung
- Typisierung: Statisch typisiert
- vor der Kompilierung müssen Typen fest stehen
- Schnelligkeit von C & Anwendungsmöglichkeiten/Simplizität von Python
- Multi-Threading
JavaScript/TypeScript
- Erweiterung von HTML
- Multi-Paradigmen
- OOP, Prozedural oder Funktional
- Dynamische Typisierung
- Andwendung: Interaktive Web-Anwendungen (z.B. Goolge Maps)
- Vorteile: modernes Erscheinungsbild, günstiger Server-Traffic (läuft im Browser)
- Dynamische Elemente
- Event-basiert (Callbacks)
- asynchrone Verarbeitung
TypeScript
- typisiert
- imperativ, OOP
- je nach Anforderungen: prozedural oder funktional
- TS hat Einfluß von JS/Java/C#
- baut auf Supermenge von JS Bibliotheken auf
- Skalierbarkeit/Wartbarkeit -> durch Einführung OOP
Programmierprinzipien:
DO IT
- (S) eparation of Concern (Programme aufteilen in kleine Teile, Methoden, Funktionen, Prozeduren)
- (O) pen/Closed Priciple (einfach neue Funktionalität zuzufügen, Änderungen bleiben lockal und haben keine Auswirkunng nach Aussen)
- (L) iskov Substitution Principle (so Code schreiben, dass andere keine Überraschungen mit ihrem Code hben)
- (I) nterface Segregation Principle (Clients sollen nicht gezwungen sein, die Schnittstellen abhängige Methoden zu implementieren. die sie nicht verwenden.Dies führt zu Schnittstellen, die nur die benötigten Methoden enthalten.)
- (D) ependency Inversion Principle (Teil der Logik in andere Klassen auslagern)
DON'T DO IT
- (S) ingleton (zur Laufzeit des Programms gibt es nur eine Kopie des Codes)
- (T) ight Coupling (Teile die nichts miteinander zu tun haben sind sehr verbunden und die kann man nicht teilen)
- (U) ntestability (Code der sich nicht automatisiert testen lässt)
- (P) remature Optimisation (um Performance sich kümmern, erst wenn man Performance bereits hat; erst nach der Messung und nach der Nachweis, dass es diese Stelle ist)
- (I) ndescriptive Naming (ungenügende oder falsche Beschreibung anstatt die Bezeicher so zu benennen, dass sich selbst beschreiben)
- (D) uplication (duplizieren von Code; besser ist es ein wiederholendes Code in eine zentrale Strucktur auszulagern)