fdai7591
2 years ago
1 changed files with 70 additions and 48 deletions
@ -1,48 +1,70 @@ |
|||
## Typisierte Programmiersprachen |
|||
|
|||
- Java; |
|||
|
|||
* Imperative Programmiersprache: sie besteht aus Folgen von Befehlen; |
|||
* Objektorientierte Programmiersprache: Programm besteht aus Objekten, die bestimmte (Teil-)Probleme lösen und zum Lösen eines Gesamtproblems mit anderen Objekten über Nachrichten kommunizieren können. |
|||
Java ist bekannt für sein Konzept „Write Once, Run Anywhere“. |
|||
|
|||
Vorteile: |
|||
1. Java ist eine einfache Sprache, man kann Codes im Vergleich zu anderen Programmiersprachen einfach schreiben. Obwohl es viele neue Funktionen unterstützt, ist es nicht so komplex wie C# und einige andere Programmiersprachen; |
|||
2. Die objektorientierte Programmierfunktion ermöglicht es Java-Entwicklern, wiederverwendbare Codeblöcke zu erstellen; |
|||
3. Multiplattform: Sobald die Java Virtual Machine (JVM) installiert ist, können Java-Programme auf jeder Plattform ausgeführt werden, ohne dass weitere Software installiert werden muss; |
|||
|
|||
- C; |
|||
|
|||
* Durch seinen einfachen Aufbau und seine geringe Anzahl an Schlüsselwörtern ist C leicht erlernbar. Sowohl zur Programmierung von Anwendungen für den Endbenutzer als auch zur Systemprogrammierung für Bestandteile und Erweiterungen von Betriebssystemen findet C seinen Einsatz; |
|||
* C ist weitverbreitet. Der C-Compiler aus der GNU Compiler Collection steht für viele Betriebssysteme zur Verfügung und stellt das zentrale Element vieler Entwicklungsumgebungen dar; |
|||
* Die Sprache C besitzt einen breiten Anwendungsbereich. C-Programme sind zwischen den verschiedenen Rechnersystemen leicht portierbar. Man kann mit C schnelle, ressourcensparende Programme erstellen. |
|||
- Python; |
|||
|
|||
1. Python bietet für fast alle Anwendungsprobleme eine Lösung; |
|||
2. Python ist aufgrund seiner Struktur gut lesbar, so können Bugs schnell gefunden und behoben werden; |
|||
3. Python ist objektorientiert und ist aufgrund eines portablen Interpreters auf vielen Plattformen verfügbar; |
|||
4. Python-Programme sind oft um einiges kürzer und transparenter als in anderen Sprachen geschriebene Programme — mit am Ende der selben Funktion. |
|||
|
|||
- go |
|||
|
|||
Go arbeitet mit sogenannten Goroutinen, leichtgewichtigen Prozessen, welche die Effizienz steigern sollen. Es verwendet auch eine Sammlung von Paketen zur effizienten Verwaltung von Abhängigkeiten. |
|||
Die Sprache umfasst eine Reihe von Funktionen wie die Standardbibliothek, Paketverwaltung, statische Typisierung, Unterstützung für Tests sowie Plattformunabhängigkeit. |
|||
|
|||
Einige Beispiele für Organisationen, die Go verwenden, sind Google, Cloudflare, Dropbox, MongoDB, Netflix, SoundCloud, Twitch und Uber. |
|||
Vorteile: |
|||
|
|||
1. Schnelle Kompilierung und Ausführung |
|||
2. Portabilität |
|||
3. Goroutinen, die Gleichzeitigkeit unterstützen |
|||
4. Keine virtuelle Maschine (VM) erforderlich |
|||
|
|||
## Typenlose Programmiersprache |
|||
|
|||
- JavaScript |
|||
|
|||
* Es ist leichter zu erlernen als typbasierte Sprachen wie (C#, Java, C++ etc) |
|||
* läuft überall (windows, linux, mac etc.) |
|||
* besonders große Auswahl an Librarys. JavaScript ist eine dynamische Skriptsprache, die auf Webseiten weit verbreitet ist, obwohl sie auch unabhängig von einem Browser in anderen Gebieten zum Einsatz kommt. |
|||
* läuft im Browser (Webanwendungen werden immer beliebter) |
|||
|
|||
Typische Anwendungsgebiete von JavaScript im Onlinebereich, wären z.B. das Anzeigen eines Pop-ups, Anzeige von Werbebannern, Plausibilitätsprüfung bei Dateneingaben usw. |
|||
## Typisierte Programmiersprachen |
|||
|
|||
- Java; |
|||
|
|||
* Imperative Programmiersprache: sie besteht aus Folgen von Befehlen; |
|||
* Objektorientierte Programmiersprache: Programm besteht aus Objekten, die bestimmte (Teil-)Probleme lösen und zum Lösen eines Gesamtproblems mit anderen Objekten über Nachrichten kommunizieren können. |
|||
Java ist bekannt für sein Konzept „Write Once, Run Anywhere“. |
|||
|
|||
Vorteile: |
|||
1. Java ist eine einfache Sprache, man kann Codes im Vergleich zu anderen Programmiersprachen einfach schreiben. Obwohl es viele neue Funktionen unterstützt, ist es nicht so komplex wie C# und einige andere Programmiersprachen; |
|||
2. Die objektorientierte Programmierfunktion ermöglicht es Java-Entwicklern, wiederverwendbare Codeblöcke zu erstellen; |
|||
3. Multiplattform: Sobald die Java Virtual Machine (JVM) installiert ist, können Java-Programme auf jeder Plattform ausgeführt werden, ohne dass weitere Software installiert werden muss; |
|||
|
|||
- C; |
|||
|
|||
* Durch seinen einfachen Aufbau und seine geringe Anzahl an Schlüsselwörtern ist C leicht erlernbar. Sowohl zur Programmierung von Anwendungen für den Endbenutzer als auch zur Systemprogrammierung für Bestandteile und Erweiterungen von Betriebssystemen findet C seinen Einsatz; |
|||
* C ist weitverbreitet. Der C-Compiler aus der GNU Compiler Collection steht für viele Betriebssysteme zur Verfügung und stellt das zentrale Element vieler Entwicklungsumgebungen dar; |
|||
* Die Sprache C besitzt einen breiten Anwendungsbereich. C-Programme sind zwischen den verschiedenen Rechnersystemen leicht portierbar. Man kann mit C schnelle, ressourcensparende Programme erstellen. |
|||
- Python; |
|||
|
|||
1. Python bietet für fast alle Anwendungsprobleme eine Lösung; |
|||
2. Python ist aufgrund seiner Struktur gut lesbar, so können Bugs schnell gefunden und behoben werden; |
|||
3. Python ist objektorientiert und ist aufgrund eines portablen Interpreters auf vielen Plattformen verfügbar; |
|||
4. Python-Programme sind oft um einiges kürzer und transparenter als in anderen Sprachen geschriebene Programme — mit am Ende der selben Funktion. |
|||
|
|||
- go |
|||
|
|||
Go arbeitet mit sogenannten Goroutinen, leichtgewichtigen Prozessen, welche die Effizienz steigern sollen. Es verwendet auch eine Sammlung von Paketen zur effizienten Verwaltung von Abhängigkeiten. |
|||
Die Sprache umfasst eine Reihe von Funktionen wie die Standardbibliothek, Paketverwaltung, statische Typisierung, Unterstützung für Tests sowie Plattformunabhängigkeit. |
|||
|
|||
Einige Beispiele für Organisationen, die Go verwenden, sind Google, Cloudflare, Dropbox, MongoDB, Netflix, SoundCloud, Twitch und Uber. |
|||
Vorteile: |
|||
|
|||
1. Schnelle Kompilierung und Ausführung |
|||
2. Portabilität |
|||
3. Goroutinen, die Gleichzeitigkeit unterstützen |
|||
4. Keine virtuelle Maschine (VM) erforderlich |
|||
|
|||
## Typenlose Programmiersprache |
|||
|
|||
- JavaScript |
|||
|
|||
* Es ist leichter zu erlernen als typbasierte Sprachen wie (C#, Java, C++ etc) |
|||
* läuft überall (windows, linux, mac etc.) |
|||
* besonders große Auswahl an Librarys. JavaScript ist eine dynamische Skriptsprache, die auf Webseiten weit verbreitet ist, obwohl sie auch unabhängig von einem Browser in anderen Gebieten zum Einsatz kommt. |
|||
* läuft im Browser (Webanwendungen werden immer beliebter) |
|||
|
|||
Typische Anwendungsgebiete von JavaScript im Onlinebereich, wären z.B. das Anzeigen eines Pop-ups, Anzeige von Werbebannern, Plausibilitätsprüfung bei Dateneingaben usw. |
|||
|
|||
## Progammierprinzipien |
|||
|
|||
- „S“ wie „Single-Responsibility-Prinzip“ |
|||
Die Kernaussage des Prinzips ist, dass jede Klasse nur genau eine fest definierte Aufgabe zu erfüllen hat. Wenn eine Klasse mehrere Verantwortungen zu tragen hat, führt das zu Schwierigkeiten bei zukünftigen Änderungen |
|||
und das Fehlerrisiko steigt. Eine hohe Kohäsion – also alle Methoden innerhalb einer Klassen haben einen starken gemeinsamen Bezug – sollte angestrebt werden. |
|||
|
|||
- „O“ wie „Open-Closed-Prinzip“ |
|||
Dieses Prinzip besagt, dass Klassen, Methoden, Module et cetera so entwickelt werden sollen, dass sie einfach zu erweitern sind – ohne aber ihr Verhalten zu ändern. Das beste Beispiel dafür ist wohl die Vererbung. Das Verhalten |
|||
einer Klasse wird nicht verändert, erhöht aber trotzdem die Funktionalität der Software. Auch das Überschreiben von Methoden verändert nicht das Verhalten der Basisklasse, sondern nur die Methoden der abgeleiteten Klasse. |
|||
|
|||
- „L“ wie „Liskovsches Substitutionsprinzip“ |
|||
Das (Ersetzungs-)Prinzip sagt aus, dass eine Subklasse immer alle Eigenschaften der Superklasse erfüllen und immer als Objekt der Superklasse verwendbar sein muss. Eine Subklasse darf somit Erweiterungen enthalten, aber keine grundlegenden Änderungen. |
|||
|
|||
- „I“ wie „Interface-Segregation-Prinzip“ |
|||
Zu große Schnittstellen sollen in mehrere Schnittstellen aufgeteilt werden, falls implementierende Klassen unnötige Methoden haben müssen. Nach erfolgreicher Anwendung dieses Entwurfprinzips müsste ein Modul, das eine Schnittstelle benutzt, nur diejenigen Methoden |
|||
implementieren, die es auch wirklich braucht. |
|||
|
|||
- „D“ wie „Dependency-Inversion-Prinzip“ |
|||
Es beschäftigt sich mit der Abhängigkeit von Modulen. Objektorientierte Entwürfe werden in Module strukturiert, die unterschiedliche Verantwortlichkeiten umsetzen. Eine gängige Praxis ist das Anordnen der Module in Ebenen. Je niedriger die Ebene eines Moduls, |
|||
desto spezieller sind die Vorgänge, die es definiert. In Modulen niedrigerer Ebenen werden Abläufe definiert, welche von allgemeineren Abläufen in höheren Ebenen benutzt werden. Das Modul der höheren Ebene definiert die Schnittstelle, mit der es arbeitet. |
|||
Module niedrigerer Ebene realisieren die Schnittstelle. |
Write
Preview
Loading…
Cancel
Save
Reference in new issue