Technische Praktiken
Unittesting
- Sie können die Vorteile von Unit Tests gegenüber manuellem Testen benennen.
- Sie können Unit Tests für eine gegebene Funktion implementieren.
- Sie können eine gegebene Testmethode verstehen und beurteilen.
- Sie können die wichtigsten Assertions sinnvoll einsetzen.
- Sie können 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
- Folien Unit Testing mit Jest in TypeScript
- Skript Clean Agile (Kapitel 5.1 Test-Driven Development)
- Repository rule-of-three
- Repository unittest-typescript
Test-Driven Development
- Sie können 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.
- Sie können das TDD-Vorgehen anhand der drei Regeln wiedergeben, erklären, begründen und anwenden.
- Sie können die Vor- und Nachteile von gruppierten gegenüber parametrisierten Testfällen nachvollziehen und erklären.
Unterlagen
- Essay Test-Driven Development
- Repository test-driven-development
Pair Programming
- Sie können die Motivation, die Ziele und den Nutzen von Pair Programming benennen.
- Sie können die verschiedenen Ansichten zum Thema Pair Programming von Kent Beck (Extreme Programming) und Robert C. Martin (Clean Agile) wiedergeben und gegeneinander abgrenzen.
- Sie können mögliche Probleme beim Pair Programming mit passenden Lösungen dazu benennen.
- Sie können eine Pair Programming Session vor Ort oder per Videokonferenz organisieren, durchführen und im Anschluss reflektieren.
Unterlagen
- Essay Pair Programming
- Repository pair-programming
Clean Code
- Sie wissen, warum Lesbarkeit und Verständlichkeit wichtige Kriterien für guten Programmcode sind.
- Sie können die Vorteile von einheitlicher Code-Formatierung gegenüber unformatiertem Code benennen und die entsprechenden Regeln anwenden.
- Sie verstehen den Zusammenhang zwischen Code-Formatierung und Versionskontrolle.
- Sie verstehen die Regeln zur Benennung von Bezeichnern und können diese anwenden.
- Sie können nützliche von unnützen Kommentaren unterscheiden und den Quellcode sinnvoll kommentieren.
- Sie können das Prinzip der Wiederverwendbarkeit auf Code und Werte anwenden.
- Sie können die Regeln der Klarheit von Programmcode anwenden.
Unterlagen
- Folien Clean Code
- Repository red-rigged-raffle
Refactoring
- Sie können das Ziel von Refactoring erklären und können diesen Vorgang gegenüber Neuentwicklung und Fehlerkorrektur abgrenzen.
- Sie können den Zusammenhang zwischen Unit Testing und Refactoring erklären (Red/Green/Refactor).
- Sie können erklären, was ein Code Smell ist, und welche Rolle es beim Refactoring spielt.
- Sie können Code Smells an bestehendem Programmcode erkennen und geeignete Refactorings anwenden, um den betreffenden Code zu verbessern.
- Sie verstehen die Vorgehensweise beim Refactoring in drei Schritten und können diese auf bestehenden Code anwenden.
Unterlagen
- Folien Refactoring
- Essay Refactoring
- Übungen
Entwurfsmuster
- Sie können die Idee von Entwurfsmustern (Design Patterns) erklären und sie von anderen Arten der Software-Wiederverwendbarkeit (Libraries, Frameworks) abgrenzen.
- Sie können die konkreten Entwurfsmuster Adapter, Observer und State erklären und auf eine gegebene Problemstellung anwenden.
Unterlagen
- Folien Entwurfsmuster
- Essay Design Patterns (Entwurfsmuster)
- Repository design-patterns