Technische Praktiken
Unittesting
- Du kannst die Vorteile von Unit Tests gegenüber manuellem Testen benennen.
- Du kannst Unit Tests für eine gegebene Funktionalität implementieren.
- Du kannst eine gegebene Testmethode verstehen und beurteilen.
- Du kannst die wichtigsten Assertions sinnvoll einsetzen.
- Du kannst die drei Bereiche einer Testmethode voneinander abgrenzen (Arrange/Act/Assert bzw. Given/When/Then).
Für Assertions wird an der Prüfung Dokumentation zur Verfügung gestellt.
Unterlagen
- Text Agiles Testen
- Folien Unittesting mit Deno in TypeScript (
unittesting-deno-typescript-folien.pdf) - Übung Unittesting
- Repository m426-2026/math
Test-Driven Development
- Du kannst die Auswirkung von Test-First Programming bzw. Test-Driven Development (TDD) auf den Entwicklungsprozess (Arbeitsrhythmus, Fehlersuche, Debugging) und die Code-Qualität (API-Design) erläutern.
- Du kannst das TDD-Vorgehen anhand der drei Regeln wiedergeben, erklären, begründen und anwenden.
- Du kannst die Vor- und Nachteile von gruppierten gegenüber parametrisierten Testfällen nachvollziehen und erklären.
Unterlagen
Pair Programming
- Du kannst die Motivation, die Ziele und den Nutzen von Pair Programming benennen.
- Du kannst die verschiedenen Ansichten zum Thema Pair Programming von Kent Beck (Extreme Programming Explained) und Robert C. Martin (Clean Agile) wiedergeben und gegeneinander abgrenzen.
- Du kannst mögliche Probleme beim Pair Programming mit passenden Lösungen dazu benennen.
- Du kannst eine Pair Programming Session vor Ort oder per Videokonferenz organisieren, durchführen und im Anschluss reflektieren.
Unterlagen
- Text Pair Programming
- Übung Pair Programming
Clean Code
- Du weisst, warum Lesbarkeit und Verständlichkeit wichtige Kriterien für guten Programmcode sind.
- Du kannst die Vorteile von einheitlicher Code-Formatierung gegenüber unformatiertem Code benennen und die entsprechenden Regeln anwenden.
- Du verstehst den Zusammenhang zwischen Code-Formatierung und Versionskontrolle.
- Du verstehst die Regeln zur Benennung von Bezeichnern und kannst diese anwenden.
- Du kannst nützliche von unnützen Kommentaren unterscheiden und den Quellcode sinnvoll kommentieren.
- Du kannst das Prinzip der Wiederverwendbarkeit auf Code und Werte anwenden.
- Du kannst die Regeln der Klarheit von Programmcode anwenden.
Unterlagen
- Folien Clean Code
- Übung Clean Code
Refactoring
- Du kannst das Ziel von Refactoring erklären und diesen Vorgang gegenüber Neuentwicklung und Fehlerkorrektur abgrenzen.
- Du kannst den Zusammenhang zwischen Unit Testing und Refactoring erklären (Red/Green/Refactor).
- Du kannst erklären, was ein Code Smell ist, und welche Rolle es beim Refactoring spielt.
- Du kannst Code Smells an bestehendem Programmcode erkennen und geeignete Refactorings anwenden, um den betreffenden Code zu verbessern.
- Du verstehst die Vorgehensweise beim Refactoring in drei Schritten und kannst diese auf bestehenden Code anwenden.
Unterlagen
- Folien Refactoring
- Text Refactoring
- Übung Refactoring
Entwurfsmuster
- Du kannst die Idee von Entwurfsmustern (Design Patterns) erklären und sie von anderen Arten der Software-Wiederverwendbarkeit (Libraries, Frameworks) abgrenzen.
- Du kannst die konkreten Entwurfsmuster Adapter, Observer und State erklären und auf eine gegebene Problemstellung anwenden.
Unterlagen
- Folien Entwurfsmuster
- Text Design Patterns (Entwurfsmuster)
- Übung Design Patterns (Entwurfsmuster)