Browse Source

Merge branch 'fdai4796-main-patch-20084' into 'main'

Update Lerntagebuch.md

See merge request fdai4796/lerntagebuch!6
remotes/origin/HEAD
fdai4796 2 years ago
parent
commit
48c0ae0876
  1. 70
      Lerntagebuch.md

70
Lerntagebuch.md

@ -137,3 +137,73 @@ Ein Rebase wird erst bevorzugt, wenn das arbeiten an einem unvollendeten Feature
Merge wird verwendet, wenn der aktuelle Zweig ein Develop oder ein Master ist. Die Historie sollte mit der Zeitachse synchron bleiben und wenn der aktuelle Zweig zusammengeführt ist. Merge wird verwendet, wenn der aktuelle Zweig ein Develop oder ein Master ist. Die Historie sollte mit der Zeitachse synchron bleiben und wenn der aktuelle Zweig zusammengeführt ist.
#Woche 5
##Kooperation im Softwareentwicklungsprozess
## Lernziele/Takeaway
#Größe von Software-Projekten
Je Größer ein Projekt ist desto Komplexer wird diese.
Demnach werden mehr Entwickler benötigt, jeder von dene Übernimmt eine Aufgabe und diese werden Anschließend zusammen geführt.
#Zusammenführen von Einzelleistungen
Wie gewohnt kann es bei einer Gruppenarbeit zu persönlichen Konflikten kommen. Jeder Entwickler entwickelt ein Software unterschiedlich, diese kann dazu führen, dass bei der Zusammenführung mehr Aufwand eintritt.
#Vorteile von CI Systemen
Die automatisierte und formale Prozzesse können den Aufwand, sowie das Konfliktpotential verringern.
Diese ist die Vorstufe von Continous Delivery.
##Softwareentwicklungsprozess.
#Bestandteile
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.
#Abhängigkeitsverwaltung
Diese wir nicht selbst während dem Build-Lauf erzeugt. Unteranderem wir diese nicht im SCM eingecheckt. Bereitstellung der Leistungen innerhalb der Organisation und das Zugreifen auf einzelne versionen ist wichtig.
#Smantische Versionierung.
MAJOR: inkompatible Änderung
MINOR: zusätzliche Features, Programmteil bleibt abwärtskompatible
PATCH: Fehlerbehebung.
LABEL: spezifische Kennzeichnungen
1. Ziffern und Punkte
2. MINOR und Patch werden unabhängig von einander inkrementiert
3. wenn MAJOR erhöhr wird, werden MINOR und PATCH auf 0 zurückgesetzt
4. Wenn MINOR erhöht wird, wird PATCH auf 0 gesetzt.
5. Version mit LABEL ist kleiner als selbe Version ohne Label
##SCM
Sicherung der Arbeit von den Entwicklern ist zu tätigen und eine zentrale Verfügbarmachung ist relevant. Zusammenführen von Parallel geänderten Dateien, verschiedene Features sollten parallel entwickelbar sein.
Zugriff auf Releases sollten möglich sein.
# 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.
für maven/gradle vorwiegend Java.
Für npm JavaScript oder TypeScript.
##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.
##Problem des Continous Integration
Hier erfolgt keine menschlicher Eingriff.
Daher ist ein Programm was Compilierbar ist, nicht gleich ausführbar.
CI soll immer im Lieferbereiten Stand sein.
Programm muss im CI-Prozess ausgeführt werden.
##VOrteile automatisierter Tests
Diese finden nur Abweichungen von gewünschten oder bekannten Verhalten.
Jedoch werden keine neuen fachlichen Fehler entdeckt.
##Vorgehensmodelle
#Gemeinsames remote repository
-alle Entwickler arbeiten ausschließlich gegen ein -gemeinsamen remote repository.
-Jeder hat Schreibzugriff
-einfache Synchronisation
-Zwischenstände für alle direkt sichtbar
#privater fork
-es gibt ein zentrales remote repository (=master)
-jeder entwickkler hat sein eigenes remote repository
-jedes locale repository hat 2 remote repositories.
> origin -> master, nur lesend
>upstream -> privater fork, Schreibrechte
Loading…
Cancel
Save