diff --git a/Writerside/images/image_843.png b/Writerside/images/image_843.png new file mode 100644 index 0000000..846d00a Binary files /dev/null and b/Writerside/images/image_843.png differ diff --git a/Writerside/images/image_844.png b/Writerside/images/image_844.png new file mode 100644 index 0000000..63bbe60 Binary files /dev/null and b/Writerside/images/image_844.png differ diff --git a/Writerside/images/image_845.png b/Writerside/images/image_845.png new file mode 100644 index 0000000..2622dc1 Binary files /dev/null and b/Writerside/images/image_845.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index 3a3a34f..4567181 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -110,6 +110,8 @@ + + diff --git a/Writerside/topics/04/Software Engineering/03_ContinousDevelopment.md b/Writerside/topics/04/Software Engineering/03_ContinousDevelopment.md new file mode 100644 index 0000000..fb49669 --- /dev/null +++ b/Writerside/topics/04/Software Engineering/03_ContinousDevelopment.md @@ -0,0 +1,89 @@ +# Continuous Development +## Configuration Management +### Version Control System (VCS) +- Erlauben mehrere Versionen von Dateien + - Falls etwas bearbeitet wurde, sieht man, wie es vorher aussah +- Erlaubt dem Team zusammenzuarbeiten + - auch wenn verteilt + +#### Good Practices VC +- Absolut alles im VCS speichern + - Tests, Datenbankscripte, Buildscripte, Dokumentationen, etc. + - Alle Informationen, die benötigt werden, um irgendwelche Test- / Produktionsumgebungen wiederherzustellen + +### VC - Release Versioning +- Jeder Release sollte eine eigene Nummer haben + +#### Versionsschema +- SemVer (Semantic Versioning) + - **MAJOR**._Minor_.patch + - Major + - Bahnbrechende Änderungen (Hohes Risiko) + - inkompatible API Änderungen + - Entfernen von Features + - Änderungen am Datenbankschema, die Daten entfernen + - Minor Version + - Features (Mittleres Risiko) + - neues Feature + - UI ändern + - DB-Schema erweitern (keine Daten entfernen) + - patch version + - Alle anderen Änderungen (kaum Risiko) + - kleinere Bug-Fixes + - Zusätzliche Labels + - alpha + - beta + - bspw: + - _1.0.0-alpha.1_ +- ![image_843.png](image_843.png) +- ![image_844.png](image_844.png) + + +### VC - Meaningful Commits +```Git +[optional scope]: +[optional body] +[optional footer(a)] +``` + +#### Commit Types +- chore + - bspw. Abhängigkeiten updaten +- refactor +- docs +- style + - Formatieren, fehlende Semikolons, ... +- test +- perf + - Performance Verbesserungen +- ci + - CI/CD related +- build + - Änderungen, die das Build-System oder externe Abhängigkeiten betreffen +- revert + - Rückgängig machen + + +### VC - Branching +- Vermeide lange Branches +- Überprüfe regelmäßig die Main-Line + +### VC - Branching GitFlow +- ![image_845.png](image_845.png) +- Development Branch (develop) + - master/main für produktionsfertigen Code + - develop für letzte Development Änderungen +- Feature Branch (feature/*) + - für neue Features + - existiert nur so lange, wie das Feature entwickelt wird +- Hotfix Branch (hotfix/*) + - Wie ein Release-Branch, aber für unerwartete, kurzfristige Releases + +**Probleme:** +- Hotfix / Release Branch + - macht die Sache deutlich (teilweise unnötig) komplizierter +- Devs machen häufig Fehler + - direkt auf main mergen, ... + +### Dependency Management +- \ No newline at end of file