@ -52,3 +52,22 @@ Die Wahl einer passenden IDE (Integrated Develepment Environment) hat großen Ei
### Wiederholung
### Wiederholung
Ein Entwurfsmuster ist eine bereits erprobte Lösungsschablone für wiederkehrende Probleme. Ihre Vor- und Nachteile sind also im Voraus schon bekannt. Sofern ein Entwurfsmuster allen geläufig ist, erleichtert dies die Kommunikation und Dokumentation in einem Gruppenprojekt. Entwurfsmuster finden sowohl auf Modulebene (Makro-Design) als auch auf Prozedur-/Klassenebene (Mikro-Design) Anwendung. Man unterscheidet zwischen Erzeugungsmuster, Strukturmuster und Verhaltensmuster.
Ein Entwurfsmuster ist eine bereits erprobte Lösungsschablone für wiederkehrende Probleme. Ihre Vor- und Nachteile sind also im Voraus schon bekannt. Sofern ein Entwurfsmuster allen geläufig ist, erleichtert dies die Kommunikation und Dokumentation in einem Gruppenprojekt. Entwurfsmuster finden sowohl auf Modulebene (Makro-Design) als auch auf Prozedur-/Klassenebene (Mikro-Design) Anwendung. Man unterscheidet zwischen Erzeugungsmuster, Strukturmuster und Verhaltensmuster.
## SU 04 (14.11.2023)
### Lernziel
- Source Code Management (SCM)
- zentrales (centralized) vs verteiltes (distributed) SCM
Je größer ein Coding Projekt, desto wichtiger ist es, das Projekt zu protokollieren und funktionierende Stände regelmäßig abzuspeichern. Git ist ein nützliches Tool, um den Quellcode zu verwalten (Source Code Management) und Zusammenarbeit zu erleichtern. Zu gits Funktionalitäten gehören einfache Navigation/Suche im Projekt, Vergleich/Zugriff auf alte Stände, optimierte Speichernutzung, automatisierte merges und übersichtliche Wiedergabe der Historie als Baumstruktur. Kurze und saubere commits minimieren Konflikte im Code und sorgen für genaue Dokumentation innerhalb der Historie.
### Wiederholung
Bei zentralem SCM wird die Historie auf einem Server/Netzwerk gespeichert. Dadurch sind die Dateien abgesichert. Alle Entwickler sehen alle commits und es ist erkennbar, wer an welcher Datei gerade arbeitet. Offline arbeiten sowie paralleles Arbeiten an einer Datei ist jedoch nicht möglich (locking). Im Gegenzug hat bei dem verteilten SCM jeder Entwickler seine eigene Version des Repositories. Dieses funktioniert ohne (permanente) Netzwerkverbindung und dient als implizietes Backup. Das Repository aller Entwickler ist also nicht synchron, wodurch Konflikte bei merges häufig auftreten.