Browse Source

Update Lerntagebuch.md

main
fdai7720 1 year ago
parent
commit
b8837fc5cb
  1. 126
      Lerntagebuch.md

126
Lerntagebuch.md

@ -371,7 +371,133 @@ Zentralle SCM bieten einen Zentralen Speicherort, wo jeder Entwickler zugrif dar
Lokale SCM hat den Vorteil, das jeder seine eigenen Entwicklungsumgebung unabhängig von andern Enticklen erstellen kann, da jeder sein eigenes lokales Verzeichnis hat. Jeder kann sein eigenes Repository aktualisieren und sich die Daten von den anderen Ziehen, was diese Hochgeladen haben. Man kann seine Programme Offline bearbeiten aber hat auch vieder den Nachteil, dass andere Zeitgleilch einen Code ändern können, was zu Problemen führen kann.
## SU 03 28.11.2023 "Kooperation SCM"
_Folie 4_
Lektüre
- Continuous Integration
- Continuous Delivery
Vermerk auf Clean Code
_Folie 7_
Warum mit anderen Softwareentwicklern zusammenarbeiten?
- Große und komplexe Programme können nicht mehr nur von einer Person geschrieben werden
- Im Team kommt mehr Erfahrung, Spezialisierung und Skills
- Alle einzelnen Entwicklungen müssen zusammengeführt werden
_Folie 8_
Zusammenführen von Einzelleistungen
- Aufwand
- Unterschiedliche Personen haben unteschiedlich Herangehenweisen
- Unterschiedliche Formatierungen führen zu Konflikten
- persönliche Konflikte unter den Entwicklern
_Folie 9_
- automatisierter Prozess prüft, ob der Code richtig formatiert ist, was den Aufwand veringert
- formale Prozesse verringern Konfliktpotential
- Vorstufe zu _Continous Delivery_
**_Softwareentwicklungsprozess_**
_Folie 11_
**Bestandteile**
- Code schreiben/entwickeln
- Bibliotheken von anderen benutzen, um Zeit und Aufwand zu sparen --> Abhänigkeit von andern Entwicklern, da diese die Bibliotheken oder Frameworks ändern können --> könnte zu Problemen mit geschriebenen Code führen
- Integration
- build-Prozess
- compile --> um zu überprüfen, ob alles funtioniert
- test --> testes auf Funktonalität für Codes, die wir entwickelt haben
- Bereitstellung für andere Entwickler und User
_Folie 12_
**Abhängigkeitenverwaltungene**
- nicht selbst im Build-Lauf erzeugt
- nicht im SCM eingescheckt
- zentralle Bereitstellung (innerhalb der Organisation)
- Zugriff auf einzelne Versionen
_Folie 13_
1.0.0-beta1
| | | |
Major Label
| |
Minor
|
Patch
- MAJOR
- MINOR
- PATCH
- LABEL
_Folie 14_
https://semver.org/
1. ausschlieslich Ziffern und Punkte
2. MINOR und MATCH werden unabhängig von einander
3. fg
4. f
5. f
6. f
_Folie 14_
- Sicherung der arbeit einzelner Entwickler
- zentrale verfüglbarkeit
- Zusammenführung parallel geänderter dateien
_Folie 16_
- Übersetzen (compilieren)
- Abhängigkeit organisiern
- automatische Test ausführen
- liefer-Artefakte erzeugen
- Deployment (verfügbar machen z.B. hochladen, speicher syncronisieren)
_Folie 17_
beliebte build-Tools:
- **make** (c-, gnu-) vorwiegend **C/C++**, keine Abhänigkeitsverwaltung
- **maven/ gradle** vorwiegend **Java**
- **npm** vorwiegend **JavaScript/TypeScript**
_Folie 18_
- SCM überwachen
- build-Prozess starten
- Abhängigkeiten auflösen
- compiliren
- automatisierte Tests ausführen
- Lieferartefakte erstellen
- Lieferartefakte ausfühen
- Ergebnisse
_Folie 19_
- kein Menschlicher Eingriff
- compilierbar bedeutet nicht gleich ausführbar!!!
_Folie 21_
- automatisierte Tests fühen Programme aus
- dokumentieren gewünschtes Verhalten
- sind wiederholbarer
- erkennen Laufzeitfehler (außer UnitTests)
- Ausführungszeit von Arbeitszeiten entkoppelt
_Folie 22_
- finden nur Abweichungen von gewünschten/ bekanntem Verhalten
- finden keine neuen fachlichen Fehler
_Folie 24_
alle Entwickler arbeiten ausschlieslich gegen ein gemeinsammes
_Folie 25_
**privater fork**
- es gibt ein zentrales remote repository (=master)
- jeder hat ein seperates remote repository (=fork)
- jedes locale repository hat 2 remote
### Erkentniss
Im Team gut zusammenarbeiten und auf Konflikte unterinader achten, das diese nicht zu einem großen Problem wir. Mehrere Entwickler --> mehr Erfahrung, Skills und Spezialisierungen
Build-Tools und automatisierte Tests verwenden/ anwenden.
### Wiederholung
Eine gute Zusammenarbeit im Team ist wichtig, da es notwendig ist mit mehreren an einem Projekt zu arbeiten und viel Vorteile, wie Erfahrungen und Skills dazukommen.
Source Code Management System, ist ein System, indem jeder Entwickler auf einen Zentralen Server/Speicher zugreifen kann und Code beziehen kann. Alle Programme/Teilaufgaben der Entwickler werden da gesammelt und zusammengeführt. Desweiteren können so Entwickler größtenteils unabhängig voneineader Teilprogramme schreiben.
Automartisierte Tests, entlasen die Entwickler, da diese automatisiert sind und zu jeder beliebigen Zeit ausgeführt werden können. Tests können beliebig häufig ausgeführt werden und dokumentieren gewünschte Verhalten. Der Nachteil dabei ist, das nur bekannte Fehler erkannt werden können.

Loading…
Cancel
Save