diff --git a/Lerntagebuch.md b/Lerntagebuch.md index cc8a31a..d1fbf7c 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -122,3 +122,54 @@ 1.Den Commit testen auf Fehler 2.Dann den Fehler beheben 3.Und zu letzt implementieren + + +# Kooperation im Softwareentwicklungsprozess, Woche 5 +## Lernziele/Takeaway + Um so komplexer ein Projekt wird umso mehr Mitarbeiter bracuht man. + Die Zusammenführen von Einzelleistungen. + Wie gewohnt kann es bei einer Gruppenarbeit zu persönlichen Konflikten kommen. Jeder + Entwickler entwickelt ein Software unterschiedlich, diese kann zu Konflikten führen und + den Fortschritt verlangsamen. + + Vorteile von CI Systemen + Die automatisierte und formale Prozzesse können den Aufwand, sowie das Konfliktpotential + verringern. + Diese ist die Vorstufe von Continous Delivery. + + Softwareentwicklungsprozesse. + Bei den Bestandteilen vom Softwareentwicklungsprozessen gehört natürlich das schreiben + eines Codes. Abhängigkeitsverwaltung, Code veröffintlichung Integration und Bereitstellung + gehören ebenfalls zu den Bestandteilen. + + Smantische Versionierung. + MAJOR: inkompatible Änderung + MINOR: zusätzliche Features, Programmteil bleibt abwärtskompatible + PATCH: Fehlerbehebung. + LABEL: spezifische Kennzeichnungen + + SCM + Die individuelle Arbeit der Entwickler werden gesichert & für jeden verfügbar gestellt. + Falls Dateien parallel geändert werden, werden sie zusammengefügt. + + Build-Prozess + Bei den Prozessen sollte möglichst alles Übersetzt werden. Automatische Test ausführen. + Hierbei sind belibte Tools: Bei C und gnu wird C/C++ bevorzugt, da keine + Anhängigkeitsverwaltung nötig. + + Integration: + SCM muss überwacht werden. Anschließend beginnt das Buidl-Prozess(Abhängigkeit auflösem -> + compilieren -> automatisierte Tests ausführen -> Lieferartefakt erstellen -> Lieferartefakt + ausliefern) und Ergebnisse berichten. + + privater fork + -es gibt ein zentrales remote repository (=master) + -jeder entwickkler hat sein eigenes remote repository + -jedes locale repository hat 2 remote repositories. +### Erkenntnise/preception + Eine Zusammenarbeit mit verschiedenen Entwicklern kann zu Problemen führen, wenn + man nicht auf gewissen sachen achtet. Man muss komunitieren und auf die Regeln achten. +#### Wiederholung/repetition + Automatisierte Test bringen viele Vorteile. Sie können Fehler vorbeugen und können + gezielt einzelne Teile des Programms testen. Sie erkennen Laufzeit Fehler und können + wiederholt werden.