From ab9aab61c07ea53bb236127569eebd72b24892bf Mon Sep 17 00:00:00 2001 From: fdai7968 Date: Sun, 26 Nov 2023 19:09:15 +0000 Subject: [PATCH] Update Lerntagebuch --- Lerntagebuch.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Lerntagebuch.md b/Lerntagebuch.md index d2e9944..3babb7f 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -55,3 +55,37 @@ Die Anwendung von Entwurfsmustern in einem Gruppenprojekt bietet eine strukturie ### 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. + +## Vorlesung am 14.11.2023 + +### Lernziele +- wieso git --> dauerhafter Zugang zu der letzten funktionierenden Version, Zugang zu den verschiedenen Stadien, vergleiche der Veränderungen +- zentralisiertes gegen verteiltes Source Code Managmenent (SCM) +- zentralisiert SCM + pro: jeder commit ist für jeden verfügbar, aktuelle Bearbeiter bekannt, einfaches backup und wiederherstellen, unbegrenzte Ressourcen für das Repository + kontra: zentrale Instanz erforderlich, sperren verhindert paralleles Arveiten, branching und merging sofort sichtbar für alle, keine offline Arbeit +- verteiltes SCM + + pro: kein zentraler Server nötig, funktioniert ohne (durchgängigen) Netzwerkzugriff, implizite Backups, offline Arbeit und lokale Experimente bleiben privat + kontra: lokale geschichte ist nicht synchronisiert, keine sicherung gegen gleichzeitige Änderung +- Commit früh, commit oft, halte sie klein und sauber +- Branching +- master Zweig hat keine beschränkung der Lebenszeit +- Develop Zweig ebenso unbegrenzte Lebenszeit, ertser commit ist der Anfang des Projekts +- release Zweig hat eibe limitierte Lebenszeit, wird vom develop branch erstellt, keine neuen funktionen sondern nur reperaturen +- hotfix Zweig kurze Lebeneszeit, wird vom master zweig erstellt, keine neuen funktionen sondern nur (schnelle, heiße) reperaturen +- feature Zweig limitierte Lebenezeit, wird vom develop Zweig ertsellt +- Merge oder Rebase? + Merge + pro: Geschichte zeigt die parallelen arbeiten an, Konfliktlösung muss nur einmal pro merge betrieben werden, bearbeitbare automatische Konfliktlösung + kontra: Komplexer Geschichts graph, Konfliktlösung zwischen den Finalen Versionen + Rebase + pro: "sauberer" graph der Geschichte, Konfliktlösung beim commit --> weniger änderungen auf einmal + kontra: zeigt keine Zeitleiste, jeder commit kann störend sein, erstellt "orphan" commits + +### Erkenntnis +Mit Git haben wir ständigen Zugriff auf die letzte funktionierende Codeversion und können Änderungen effizient verfolgen. Ob wir uns für zentrales oder verteiltes Source Code Management entscheiden, hängt von den Projektbedürfnissen ab. Klar definierte Branching-Strategien und das Motto "Commit früh, commit oft" erleichtern die Zusammenarbeit und bringen Ordnung in den Code. + +### Wiederholung +Branching in Git ermöglicht eine parallele Entwicklung, indem verschiedene Codeversionen unabhängig voneinander bearbeitet werden können. Feature-Branches dienen der Implementierung neuer Funktionen, während Release-Branches spezifische Entwicklungsstadien markieren. Die Entscheidung zwischen Merge und Rebase beeinflusst, wie Änderungen in den Hauptentwicklungszweig integriert werden. +