@ -31,3 +31,27 @@ Durch die Prinzipien, die wir gelernt haben, können wir dann später bei der Pr
### Wiederholung
### Wiederholung
Die Existenz verschiedener Programmiersprachen resultiert aus der Notwendigkeit, unterschiedliche Anforderungen und Aufgaben in der Softwareentwicklung zu adressieren. Programmiersprachen sind entworfen, um spezifische Problemstellungen effizient zu lösen, sei es durch hardwarenahe Steuerung, schnelle Prototypenerstellung oder abstrakte Problemlösungen. Die Vielfalt reflektiert die Diversität von Anwendungsdomänen und ermöglicht Entwicklern die Auswahl der am besten geeigneten Sprache für eine gegebene Aufgabe.
Die Existenz verschiedener Programmiersprachen resultiert aus der Notwendigkeit, unterschiedliche Anforderungen und Aufgaben in der Softwareentwicklung zu adressieren. Programmiersprachen sind entworfen, um spezifische Problemstellungen effizient zu lösen, sei es durch hardwarenahe Steuerung, schnelle Prototypenerstellung oder abstrakte Problemlösungen. Die Vielfalt reflektiert die Diversität von Anwendungsdomänen und ermöglicht Entwicklern die Auswahl der am besten geeigneten Sprache für eine gegebene Aufgabe.
## Vorlesung am 7.11.2023
### Lernziele
- Definition Entwurfsmuster --> bewährte Lösungsschablonen für wiederkehrende Emtwurfsprobleme
- aus der Architektur, für Objekt-orientierte-Programmiersprachen adaptiert
- Vorteile: erprobte Lösung für Wiederkehrende Aufgaben; Vor- und Nachteile sind bekannt; leichtere Kommunikation; gut für Dokumentation
- Nachteile: hohe Einstiegshürde; schwer zuerkennen im Code
- Makro-Design (Grobentwurf) --> Modulebene; Architekt und Team
- Mikro-Design (Beziehung von Codebestandteilen zu einander) --> Prozedur/Klassenebene; Programmierer
- Verschiedene Typen von Entwursmustern: Erbauer; Fabrikmethode; Abstrakte Fabrik; Einzelstück (singelton); Multiton; Adapter; Nachrüstungsschnittstellenmuster; Die Brücke; Dekorierer; Fassade; Fliegengewicht; Accumulator; Beobachter; Iterator; Kommando; Nullobjekt; Strategie
- Geschichte der Programmierwerkzeuge --> 1.1 Bohrer; 1.2 Bleistift und Radiergummi; 1.3 Zeileneditor; 1.4 Integrated Developement Enviroment (IDE)
- Einteilung des Integrated Developement Enviroment --> Programmiersprache und Zielplatform
- IDE Automatisierungen: Code Insights/Intellisense; safe actions--> Code Formatierung; Compilieren
- IDE automatiesierte Refactorings: einfache Refactorings --> auf aktuelle Datei beschränkt; komplexe Refactorings --> Über mehrere Dateien: Umbenennungen; Signaturen von Prozeduren/Methoden; Verschieben von Codeteilen; Zusammenfassen von Codteilen
- IDE Debugging Beobachtet das Programm während der Laufzeit --> Abarbeitungsreihenfolge der Prozeduren/Methoden; Werte von Variablen
### Erkenntnis
Die Anwendung von Entwurfsmustern in einem Gruppenprojekt bietet eine strukturierte Herangehensweise zur Lösung wiederkehrender Designprobleme, wodurch effiziente und gut dokumentierte Lösungen ermöglicht werden. Die Unterscheidung zwischen Makro- und Mikro-Design fördert eine klare Kommunikation im Team und trägt zur Entwicklung einer konsistenten Codebasis bei.
### Wiederholung
Integrated Development Environments (IDEs) wie Eclipse oder Visual Studio Code bieten Entwicklern automatisierte Tools wie Code-Insights, Refactorings und Debugging-Werkzeuge. Diese Funktionen erhöhen die Produktivität im Team, da sie schnelleres Schreiben, Anpassen und Debuggen von Code ermöglichen. Die Auswahl einer geeigneten IDE basiert auf der Programmiersprache und der Zielplattform des Gruppenprojekts.