Prog. 2 Flashcards
Vorteile der Versionsverwaltung
Nachverfolgbarkeit aller Änderungen über die Zeit
Unterstützung für kollaboratives Arbeiten
Verwaltung verschiedener Projektversionen
Sicheres Backup der Dateien
Unterstützung für Branching und Merging
Was ist ein Git Repository
Ein Speicherort, der alle Dateien und kompletten Versionsverlauf eines Projektes enthält
Welche Komponente sind am Repo beteiligt
Arbeitsverzeichnig
Staging Area
Lokales Repo
Remote Repo
Wie interagieren Git Komponente untereinander?
git add zu Staging
git commit ins lokale Repo
git push ins remote Repo
Wichtige Git Commands und Auswirkungen
git init: initialisiert / erstellt Repo
git clone: Klont ein Repo
git add: Fügt Änderungen zu Staging Area hinzu
git commit: Speichert Änderungen ins Repo
git push: Überträgt Änderungen ins remote Repo
git pull: Holt Änderungen von remote Repo
Unterschied Git und GitLab
Git: Lokales Versionskontrollsystem
GitLab: Webbasierte Plattform mit zusätzlichen Funktionen
Was ist ein Merge in Git
Zusammenführen von Änderungen aus verschiedenen Branches, wenn parallele Entwicklungsstränge integriert werden sollen
Was beschreibt die Staging Area?
Bereich für Änderungen die im nächsten Commit gespeichert werden
Befehl zum Status prüfen in git
Git status
Was ist eine Exception?
Laufzeitfehler der auftritt, wenn Programm auf unerwartete Situation stößt
Wozu Try/Catch
Fangen Exceptions ab und ermöglichen Fehlerbehandlung ohne das Programm zu beenden
Unterschied checked und unchecked Exception
Checked Exceptions werden vom Compiler noch vor kompilieren des Programms gemeldet und als fehler markiet das diese behandelt werden müssen
Unchecked Exception verhindern nicht das das programm kompiliert
!!!WICHTIG!!!
In beiden Fällen stürtzt das Programm ab wenn eine Exception nicht behandelt wird! Egal ob Checked oder Unchecked!
Was ist ein Finally Block
Führt Code immer aus, unabhängig ob Exception auftritt, z.B zum freigeben von Ressourcen
Was sind die Vor- und Nachteile von zentralisiertem und lokalisiertem Exception Handling?
Zentralisiert: Einfachere Wartung aber weniger spezifische Fehlerbehandlung
Lokalisiert: Detaillierte Fehlerbehandlung, aber kann komplexer sein
Was versteht man unter defensiver Programmierung
Programmiertechnik, die darauf abzielt potentielle Fehler durch sorgfältige Überprüfung und Validierung von Eingaben und zuständen zu vermeiden
Wie müssen checked Exceptions behandelt werden?
Immer mit Try-Catch oder throws
Von welcher Klasse müssen Unchecked Exceptions erben?
RunTimeException
Wofür wird Try with Resources verwendet
Zur automatischen Freigabe von Ressourcen
Was ist ein Breakpoint
Punkt im Quellcode, an dem Ausführung pausiert wird um den Zustand der Software zu prüfen und Fehler zu finden
Komponententest
Testet einzelne Module oder Komponente der Software auf korrekte Funktion
Isolierte Teile des Codes werden getestet
Integrationstest
Prüft korrekte Zusammenarbeit mehrere Komponenten
Prüft Interaktion zwischen den Komponenten
Systemtests
Prüft Gesamtfunktion des Systems gemäß der Anforderungen
Alle Komponenten werden integriert und getestet
Prüft Gesamtverhalten des Systems
Regressionstest
Prüft, ob Änderungen in der Software ungewollte Effekte in bereits funktionierenden Teilen verursacht haben
Sicherstellung, dass bisherige Funktionalität bestehen bleibt
Unit Testing
Testmethode, bei der einzelne Module isoliert getestet werden, um erwartete Funktion sicherzustellen
Erläutern Sie den Unterschied und die Verwendungsweise der Annotationen @BeforeEach und @BeforeAll.
@BeforeEach: Wird vor jedem Test in einer Testklasse ausgeführt
@BeforeAll: Wird einmal vor dem ersten Test in einer Testklasse ausgeführt
Testgetriebene Entwicklung
TDD bedeutet, dass Tests vor der Implementierung geschrieben werden, um Anforderungen und Codequalität zu verbessern
Wie kann man effizient nach Fehlern im Code suchen
Debugging
Wie nennt man einen Breakpoint, der unter einer spezifischen Bedingung anhält
Conditional Breakpoint
Welches Framework wird in Java zum Komponententest verwendet?
JUnit5
Wie nennt man die Methode bei der Softwaretests vor den zu testenden Komponenten erstellt werden?
TDD (Test driven development)
Welche JUnit Annotation markiert eine Test Methode
@Test
Mit welcher JUnit-Assertion Methode kann eine Bedingung auf Wahrheit geprüft werden
assertTrue
Welches Interface beschreibt eine Collection, die keine Duplikate erlaubt
Set Interface
Welches Interface beschreibt eine geordnete Collection, die Duplikate erlauben?
List Interface
Welches Interface beschreibt eine Zuordnung von Schlüsselwörtern (Key) zu Werten (Value)
Map Interface
Drei verschiedene Wege, um über ein Element einer Liste zu iterieren
For-Schleife
for (Element element : list) {
// Verarbeitung des Elements
}
iterator
Iterator<Element> iterator = list.iterator();
while (iterator.hasNext()) {
Element element = iterator.next();
// Verarbeitung des Elements
}
ListIterator
ListIterator<Element> listIterator = list.listIterator();
while (listIterator.hasNext()) {
Element element = listIterator.next();
// Verarbeitung des Elements vorwärts
}
// Rückwärts durch die Liste iterieren
while (listIterator.hasPrevious()) {
Element element = listIterator.previous();
// Verarbeitung des Elements rückwärts
}</Element></Element>
Queue Interface
Queue Interface definiert Collection zur Verwaltung von Elementen nach FIFO
Wichtige Methode Queue Interface
offer(E e): Fügt ein Element am Ende der Queue hinzu und gibt true zurück wenn erfolgreich
poll(): Entfernt und gibt das Element am Anfang der Queue zurück oder null wenn leere Queue
peek(): Gibt Element am Anfang der Queue zurück, ohne es zu entfernen oder null wenn leere Queue
FIFO
Element das zuerst in Queue eingefügt wurde auch als erstes wieder entfernt wird
Neue Elemente werden hinten angefügt und Elemente werden vorne entfernt
Welches Konzept wird für Typsicherheit verwendet
Generics