From 9aa54ad4ee52845de590a37d2b8609e4db4a7b1e Mon Sep 17 00:00:00 2001 From: fdai7103 Date: Tue, 21 Nov 2023 19:19:39 +0000 Subject: [PATCH] Update Lerntagebuch Woche 4.md --- Lerntagebuch.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/Lerntagebuch.md b/Lerntagebuch.md index e811153..2f43c5c 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -13,7 +13,7 @@ Außerdem kann ich als Developer mit den gelernten vim-Befehlen vor anderen flex -## SU 02 (31.09.2023) +## SU 02 (31.10.2023) ### Lernziel - Imperative Programmierung @@ -39,7 +39,7 @@ Der Ablauf des Programms, also in welcher Reihenfolge alles ausgefuehrt wird, is -## SU 3 (7.9.2023) +## SU 3 (7.11.2023) ### Lernziel - Erzeugungsmuster @@ -78,3 +78,70 @@ Refactoring bezeichnet die Prozedur, den Code nachhaltig zu verbessern, indem ma oder diesen lesbarer umschreibt. Beim Refactoring wird die Funktion des originalen Codes nicht veraendert. ### Kritik + + + +## SU 4 (14.11.2023) + +### Lernziel +- Sourcecodemanagement + - Permanenter Zugang zu dem letzten Arbeitszustand + - Zugang zu verschiedenen Zuständen des Codes + - Vergleich von unteschieden + - Speichert nur die Änderungen(spart Speicherplatz) + - Navigation ist einfach + +- Simple Möglichkeiten zur sicherung des Sourcecodes + - lokale Kopien + - zip archiv + - Kopien im Netz + +- Zentralisierte SCM + - Vorteile + - Jeder commit ist verfügbar für alle + - wenn einer am Projekt arbeitet wissen das alle und es können keine anderen daran arbeiten + - leichte Backup und Wiederherstellung + - unendliche Ressource fürs Repository + - Nachteile + - Zentrale Instanz ist notwending + - locking verhindert paralleles Arbeiten + +- Verteiltes SCM + - Vorteile + - kein zentraler Server notwendig + - mehrere remotes möglich + - funktioniert ohne permanente Netzwerkverbindung + - impliziete Backups + - offline Arbeit - eigene/lokale 'Experimente' bleiben privat + - Nachteile + - lokaler Verlauf ist nicht synchron + - kein Schutz gegen gleichzeitige Änderungen + +- Git Konzept + - basiert auf Veränderungen und nicht auf Dateien + - commits sind durch SHA geschützt + - branches sind Labels für commits + - staging area (Änderungen werden gesammelt bis sich ein commit lohnt) + +- Commits + - sollten klein sein um Konflikte leichter zu lösen + - Veränderungen sind leichter zu finden + - sollten clean sein + +- Branches + - kommen vom initial commit + - jeder Branch hat einen bestimmten Committer + - kann unendlich lang gehen + - alle commits im Master branch müssen clean sein, weil er an den Kunden geht + +### Erkenntnis +Ich kenne jetzt das Konzept von Git und werde es im Gruppenprojekt verwenden. +Außerdem weiß ich jetzt wie ein clean Commit aussieht und kann dadurch das Gruppenprojekt sauber +und übersichtlich halten. + +### Wiederholung +Ein Clean Commit ist eine Commmit der nicht zu groß ist. Er sorgt außerdem nicht für Probleme +z.B. wenn man eine Methode umbenennt sollte man darauf achten, dass die Methode auch überall im Code umbenannt wird, +damit der Code weiterhin funktioniert. Wenn man das nicht macht wäre es kein clean Commit. + +### Kritik