Die Module in diesem Themenkomplex beschäftigen sich nicht primär mit einzelnen Sprach-Features von C++ sondern mit der Frage: Wie verwende ich die Features von C++ um Programm-Code zu schreiben, der möglichst wenige Fehler hat, und leicht zu verstehen, zu ändern und zu erweitern ist. Die Module in diesem Abschnitt beschränken sich dabei hauptsächlich auf relativ “lokale” Programmbestandteile wie einzelne Funktionen und Klassen.
Natürlich gehen wir auch in den Modulen, die die entsprechenden Sprachkonstrukte einführen darauf ein, wie man sie gut verwendet; die Module in diesem Abschnitt vertiefen die Techniken weiter und gehen auch auf Aspekte ein, für die in einem typischen C++ Grund- oder Aufbaukurs keine Zeit bleibt
Agile Programmieren: Agile Techniken helfen “Technical Debt” gering zu halten und die Software so flexibel zu halten, dass der Einbau neuer Features über die gesamte Lebensdauer des Projekts möglich bleibt.
Folgende Schwerpunkte beinhaltet das Modul: Clean Code / Clean Unit Test in C++
- Code Styles in C++
- Tools zur Verbesserung der Code-Qualität (Linter, Statische Analyse)
- Clean Code: Namen, Kommentare, Funktionen
- Member-Funktionen vs. freistehende Funktionen
- Testen mit Catch2
- Test-first Development Techniken
- Test Driven Development (TDD)
- Behavior Driven Development (BDD)
- Ausführbare Spezifikationen (cucumber/behave)
- Test Double und Mocking Frameworks
- Refactoring Patterns und Best Practice in C++