Modernes C++
Ziel und Motivation
Jeder Teilnehmer soll in die Lage versetzt werden, deutlich gut wartbaren von schlecht wartbaren Quellcode unterscheiden zu können. Die Vorteile von gut wartbaren Quellcode sollen in das Bewusstsein der Entwickler gerufen und dazu motiviert werden. Der Workshop wird dazu den Entwicklern bewehrte Ansätze der modernen Leistungsmerkmale von C++ hin zu besserer Modularisierung und guter Code Qualität vermitteln.
Mit der Nutzung der neuen Leistungsmerkmale von C++ nach der Schulung ist eine höhere Code Qualität und Modularisierung möglich. In Verbindung mit aussagekräftigen Unit Tests kann eigenes und fremdes Vertrauen in den Quellcode erhöht und mehr Fehler in der Entwicklung aufgedeckt werden. Letztendlich kann damit auch eine schnellere Fehleranalyse stattfinden können.
Vorgehen
Um den Stoff nachhaltig vermitteln und motivieren zu können, werden sich Theorie-Vorträge mit praktischen Sessions untereinander abwechseln. Auch die Vorträge beziehen die Teilnehmer proaktiv mit ein und beantworten deren Fragen aus dem Programmieralltag. In den praktischen Sessions werden realitätsnahe Szenarien benutzt. Selbst erfahrene Entwickler sollen dabei etwas lernen können und motiviert werden. Ausgerichtet werden kann die Schulung anhand aller aktueller C++ Versionen, wie C++ 11, C++ 14 oder C++ 17.
Organisation
Der Workshop unterteilt sich in theoretische und praktische Sessions. Die Länge der einzelnen Sessions variiert je nach Komplexität zwischen 20 und 120 Minuten. Alle Teilnehmer werden ermuntert, sich einzubringen und Fragen zu stellen. Die Schulung ist dafür ausgelegt, dass jeder Teilnehmer die modernen Leistungsmerkmale von C++ danach richtig im Alltag einsetzen kann.
Grundlagen
- Stand der Dinge bei C++ – ein Überblick
- „Almost always auto“ – wie das funktionieren kann
- Praxis: Umbau auf auto – wo es sinnvoll ist
- Neue statische & dynamische Container
- Praxis: Container einsetzen
Erweitertes
- C++ value object design in der std::chronos Bibliothek
- Lambdas richtig benutzen mit STL-Algorithmen
- Praxis: Lambdas & Algorithmen einsetzen
- „Type erasure“ – am Beispiel von std::function
- Praxis: Inheritance als Implementationsdetail
Weiterführendes
- Threads mit C++ verstehen
- Praxis: std::thread richtig einsetzen
- Atomics in C++
- Praxis: Themen übergreifende Praxis
- Zusammenfassung des Workshops