Software Design mit Modernem C++
Classroom Schulung | Deutsch | Anspruch
Schulungsdauer: 3 Tage
Ziele
Dieser Kurs "Software Design mit Modernem C++" für Fortgeschrittene ist ein Training zu gutem Software-Design mit der C++ Programmiersprache. Der Fokus der Schulung liegt auf auf den wichtigsten und bewährten C++- spezifischen Software-Entwicklungsprinzipien und -Konzepten, die Entwickler benötigen, um professionellen, hoch-qualitativen Code zu schreiben. Dieser Kurs vertieft das Verständnis des Kerns der C++ Programmiersprache, bietet Orientierung bei der Entwicklung von ausgereifter, robuster, wartbarer und effizienter Software mit einem Minimum an Abhängigkeiten und hilft, die häufigsten Fallstricke zu vermeiden.
Zielgruppe
Das Seminar ist für alle Entwickler mit 1-2 Jahren C++-Erfahrung geeignet.
Voraussetzungen
Teilnehmer sollten mindestens ein bis zwei Jahre C++-Erfahrung mitbringen. Für diesen Kurs wird vorausgesetzt, dass die Teilnehmer ein gutes Verständnis der Sprachmechanik haben (z.B. Header-Dateien, Quelldateien, Kompilieren), mit der Syntax der Sprache vertraut sind (z.B. Pointer und Referenzen, Schleifen, Klassen, ...), die grundlegenden Features kennen (Constructors, Destructors, ...) und Vererbung und Templates bereits genutzt haben. Es wird auch vorausgesetzt, dass die üblichen Komponenten der Standardbibliothek bekannt sind (z.B. std::vector).
Agenda
Grundlegende Design-Prinzipien
- Das Ziel von gutem Software-Design
- Die SOLID Prinzipien
Konzepte und die STL
- Das Design der STL: Value Semantics
- Konzepte in C++
- Überblick über die STL
- STL-Algorithmen
- STL-Container
Klassen-Design: Der Weg zu Value Semantics
- Die "Compiler Generated Functions"
- Die Lebenszeit von Objekten (RAII)
- Move Semantics
- Member Data
- Member Functions
- Allgemeines Klassen-Design
- Const Correctness
- Sichtbar oder Zugreifbar?
Dynamischer Polymorphismus im modernen C++
- Die Gefahren von Vererbung
- Wie Value Semantics die klassischen Design Patterns verändert
- Das Strategy Design Pattern
- Das Visitor Design Pattern
- Vererbung Ja, aber Richtig
- Gute Beispiele für "Public Inheritance"
- Schlechte Beispiele für "Public Inheritance"
- Überraschungen in Vererbungshierarchien
Ziele
Dieser Kurs "Software Design mit Modernem C++" für Fortgeschrittene ist ein Training zu gutem Software-Design mit der C++ Programmiersprache. Der Fokus der Schulung liegt auf auf den wichtigsten und bewährten C++- spezifischen Software-Entwicklungsprinzipien und -Konzepten, die Entwickler benötigen, um professionellen, hoch-qualitativen Code zu schreiben. Dieser Kurs vertieft das Verständnis des Kerns der C++ Programmiersprache, bietet Orientierung bei der Entwicklung von ausgereifter, robuster, wartbarer und effizienter Software mit einem Minimum an Abhängigkeiten und hilft, die häufigsten Fallstricke zu vermeiden.
Zielgruppe
Das Seminar ist für alle Entwickler mit 1-2 Jahren C++-Erfahrung geeignet.
Voraussetzungen
Teilnehmer sollten mindestens ein bis zwei Jahre C++-Erfahrung mitbringen. Für diesen Kurs wird vorausgesetzt, dass die Teilnehmer ein gutes Verständnis der Sprachmechanik haben (z.B. Header-Dateien, Quelldateien, Kompilieren), mit der Syntax der Sprache vertraut sind (z.B. Pointer und Referenzen, Schleifen, Klassen, ...), die grundlegenden Features kennen (Constructors, Destructors, ...) und Vererbung und Templates bereits genutzt haben. Es wird auch vorausgesetzt, dass die üblichen Komponenten der Standardbibliothek bekannt sind (z.B. std::vector).
Agenda
Grundlegende Design-Prinzipien
- Das Ziel von gutem Software-Design
- Die SOLID Prinzipien
Konzepte und die STL
- Das Design der STL: Value Semantics
- Konzepte in C++
- Überblick über die STL
- STL-Algorithmen
- STL-Container
Klassen-Design: Der Weg zu Value Semantics
- Die "Compiler Generated Functions"
- Die Lebenszeit von Objekten (RAII)
- Move Semantics
- Member Data
- Member Functions
- Allgemeines Klassen-Design
- Const Correctness
- Sichtbar oder Zugreifbar?
Dynamischer Polymorphismus im modernen C++
- Die Gefahren von Vererbung
- Wie Value Semantics die klassischen Design Patterns verändert
- Das Strategy Design Pattern
- Das Visitor Design Pattern
- Vererbung Ja, aber Richtig
- Gute Beispiele für "Public Inheritance"
- Schlechte Beispiele für "Public Inheritance"
- Überraschungen in Vererbungshierarchien