The modules in this topic do not deal primarily with individual language features of C++ but with the question: How do I use the features of C++ to write program code that has as few errors as possible and is easy to understand, change and extend. The modules in this section are mainly limited to relatively "local" program components like single functions and classes.
Of course, we also go into how to use the relevant language constructs well in the modules that introduce them; the modules in this section delve further into the techniques and also cover aspects that there is no time for in a typical basic or advanced C++ course.
Agile Programming: Agile techniques help to keep "technical debt" low and to keep the software flexible enough to allow the incorporation of new features throughout the life of the project.
The Clean Code / Clean Unit Test in C++ module includes the following focus areas:
- Tools for improving code quality (linter, static analysis)
- Clean Code: Names, comments, functions
- Member functions vs. free-standing functions
- Testen with Catch2
- Test-first Development Techniken
- Test Driven Development (TDD)
- Behavior Driven Development (BDD)
- Executable Specifications (cucumber/behave).
- Test Double und Mocking Frameworks
- Refactoring Patterns und Best Practice in C++