diff --git a/Lerntagebuch.md b/Lerntagebuch.md index 24e2e78..40cedda 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -364,6 +364,24 @@ _Überprüfen Sie, ob die Anmeldefunktion mit der richtigen Datenbank funktionie 4. Der erste Test wurde für den Fall erstellt, dass keine Pins umgeworfen werden, was zu einer Nullpunktzahl führt. Der Test schlug fehl, da er nicht viele Informationen enthielt. Dann haben wir genug produktiven Code eingegeben, um ihn zu einem erfolgreichen Test zu machen. 5. In diesem Prozess haben wir unseren Code mit neuen Tests (mit neuer Funktionalität) verbessert, ohne die früheren Tests zu zerstören. +## SU 09 (11.01.2023) +### Lernziel - **Continuous Integration** - Größe von Software Projekten + +### Erkenntnis - + +- **Zusammenführen der Einzelleistungen:** Was auch immer jeder Entwickler für ein gemeinsames Softwareprojekt tut, muss zusammen mit anderen Teammitgliedern erarbeitet werden. Softwareentwickler sollten immer eine kreative Lösung finden. Technische Konflikte entstehen, wenn verschiedene Entwickler ihre eigenen Änderungen an derselben Projektdatei vornehmen. Persönliche Konflikte können entstehen, wenn die Arbeitsweise oder das Schreiben des Codes unterschiedlich ist. +- **Vorteile von CI-Systemen:** CI-Systeme haben Vorteile. Sie helfen bei der Lösung von Konflikten. Merge wird nicht von einem Entwickler, sondern vom Server durchgeführt. Diese Befehle können auch über Nacht vom Server ausgeführt werden, so dass wir am nächsten Morgen ein Feedback haben. +- **Entwicklungsumgebung des Programmierers:** Der gesamte Code wird in einer IDE geschrieben und ausgeführt. Die IDE hilft bei der Hervorhebung von Syntaxfehlern oder Warnungen, sie automatisiert Refactorings, hilft bei der Navigation durch den Code und beim Verständnis, bei der Auswahl der Kompilierparameter, unterstützt bei der automatischen Formatierung des Codes und hilft bei der direkten Navigation zu den Fehlern im Code. +- **Continuous Integration Server:** Er überwacht das SCM-System. CIS hilft auch beim Starten des Build-Prozesses mit dem Build-Tool. +- **Erweiterung für die Continuous Delivery:** Staging-Systeme helfen bei der Durchführung und Bestimmung verschiedener Tests, um das Produkt auslieferungsfähig zu machen. Produktionssysteme machen die Anwendung unserer Funktionen produktiv-aktiv. +- **Die Rolle der automatisierten Tests:** Das Problem von Continous Systems ist, dass es nicht bedeutet, dass wenn etwas kompilierbar ist, es auch immer ausführbar ist. CI-Systeme sollten immer das fertige Projekt bereithalten. Das Programm sollte mit automatisierten Tests immer ausführbar sein. Der Vorteil von automatisierten Tests ist, dass sie immer dokumentieren und immer wiederholbar sind. Sie erkennen auch Laufzeitfehler. + +### Wiederholung - + +- Source Code Management System (SCM): SCM hilft bei der Speicherung der Arbeit jedes einzelnen Entwicklers im gesamten Team. Es gibt ein zentrales Repository, das die gesamten Aktualisierungen und Änderungen aller Teammitglieder enthält. SCM ermöglicht die parallele Entwicklung verschiedener Funktionen für das Produkt. In einem SCM-System kann man jederzeit auf verschiedene Versionen oder frühere Versionen desselben Produkts/Programms zurückgreifen. +- Automatisierte Tests: Unit-Tests zeigen, welche Anforderung nicht erfüllt ist, wo der Fehler besteht und unter welchen Bedingungen er auftritt. Die Qualität des produktiven Codes beeinflusst die Qualität der Tests. + +