Seminarinformationen
Seminar - Ziel
In dieser 2-tägigen Schulung "Clean Code für C++ Entwickler" lernen Sie, wie Sie hochwertige und wartbare C++-Projekte unter Anwendung der Clean Code-Prinzipien umsetzen. Sie werden mit wichtigen Konzepten wie KISS, DRY und Information Hiding vertraut gemacht und lernen fortgeschrittene Techniken wie RAII, Smart Pointer und perfektes Weiterleiten kennen, um die Codequalität zu verbessern.
Zudem erfahren Sie, wie modernes C++ effizient durch funktionale Programmierung, typreiche Ansätze und die Nutzung von Bibliotheken eingesetzt werden kann. Ihr Wissen über Entwurfsmuster wie SOLID, Strategie und Factory wird vertieft, und Sie erhalten Einblicke in die Vorteile der Modularisierung sowie die Nutzung von Modulen.
Ein besonderer Schwerpunkt liegt auf Best Practices für Tests, insbesondere Unit-Tests mit Catch2, um robuste und zuverlässige Software zu entwickeln. Mit praxisorientierten Beispielen und Übungen lernen Sie, wie Sie sauberen Code in Ihrem Arbeitsalltag erfolgreich umsetzen können.
Teilnehmer - Zielgruppe
- Softwareentwickler
- Programmierer
- Entwickler
- Softwarearchitekten
Kurs - Voraussetzungen
- Grundlegende Kenntnisse in C++
- Grundlagen in Modern C++
- Erfahrung in der Programmierung
- Verständnis von Softwareentwicklungsprozessen
Seminardauer
- 2 Tage
- 09:00 Uhr bis 17:00 Uhr
Schulungsunterlagen
Seminar-Inhalt / Agenda
Prinzipientreue
- KISS (Keep it simple and stupid)
- YAGNI (You Aren't Gonna Need It)
- DRY (Don't Repeat Yourself)
- POLS (Principle Of Least Surprise)
- Information Hiding
- Strong Cohesion (Starker Zusammenhalt)
- Loose Coupling (Lose Kopplung)
Grundlegende Konzepte von Clean C++
- Namensgebung für Bezeichner
- Kommentare
- Funktionen
- Old C-Style in einem C++ Projekt
Fortgeschrittene Konzepte in Modern C++ / Secure Coding
- Ressourcenverwaltung mit RAII
- Nutzung von Smart Pointer Klassen (std::unique_ptr, std::shared_ptr und std::weak_ptr)
- Verschieben ist besser als Kopieren (std::move)
- Perfektes Weiterleiten (Perfect Forwarding)
- Vorteile von auto (Automatic Type Deduction)
- Vermeide UB (Undefined Behaviour)
- Typreiche Programmierung (Type-Rich Programming, Type Traits)
- Statischer vs. dynamischer Polymorphismus
- Verwenden Sie Bibliotheken (STL)
- Richtige Ausnahme- und Fehlerbehandlung
- Design von Methoden-/Funktionsschnittstellen (Attribute)
- Verwendung von Konzepten (concept) und Anforderungen (requires)
Einige Design Patterns (Entwurfsmuster) und Idiome
- Das SOLID Idiom
- Single Responsibility Prinzip (SRP)
- Open-Closed Prinzip (OCP)
- Liskovsches Substitutionsprinzip (LSP)
- Interface Segregationsprinzip (ISP)
- Dependency Inversion Prinzip (DIP)
- Einige Muster und wann sie zu verwenden sind
- Adapter
- Strategy
- Command
- Composite
- Observer
- Factories
- Facade
Modularisierung
- Objektorientierung
- Objektorientiertes Denken
- Prinzipien für gutes Klassendesign
- Module
- Die Nachteile von #include
- Module als Rettung
- Unter der Haube
- Funktionale Programmierung
- Was ist funktionale Programmierung?
- Funktionale Programmierung in modernem C++
- Funktionale Programmierung mit C++-Templates
- Funktionsähnliche Objekte (Funktoren)
- Lambda-Ausdrücke
- Generische Lambda-Ausdrücke
- Lambda-Vorlagen
- Funktionen höherer Ordnung
- Map, Filter und Reduce
- Pipelining mit Bereichs-Adaptern
- Sauberer Code in der funktionalen Programmierung
Notwendigkeit des Testens
- Unit-Tests
- Regeln für gute Unit-Tests
- Test Codequalität
- Unit-Test-Benennung
- Unit-Test-Unabhängigkeit
- Beispiel: Die Bibliothek Catch2
Code Reviews mit AI-Tools
Weitere Schulungen zu Thema C++ Programmierung
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn diesem 3-tägigen Seminar "Plattformübergreifende Entwicklung mit Qt - Einführung" erlernen Sie die grundlegenden Konzepte und Techniken zur Entwicklung plattformübergreifender Anwendungen mit Qt. Sie machen sich mit der Qt-Entwicklungsumgebung und dem QtCreator ...
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn diesem 5-tägigen Seminar "C++ Programmierung Grundlagen" erwerben Sie die Fähigkeiten, Programme mit der erweiterten Sprache C zu entwickeln. Sie lernen, eigene Problemstellungen selbstständig in funktionierende Programme zu überführen. Die Unterschiede zu C ...
- u.a. in Nürnberg, Wien, Erfurt, Freiburg, NordhausenIn dieser 3-tägigen Schulung "Design-Pattern C++ - Entwurfsmuster" lernen Sie eine Vielzahl von Design-Patterns kennen, die in der C++-Programmierung eingesetzt werden können. Dabei werden erzeugende Muster (Creational Patterns), strukturelle Muster (Structural ...
- u.a. in Stuttgart, Dresden, Heidelberg, Erfurt, Virtual ClassroomIn der 2-tägigen Schulung "IT-Sicherheitskonzepte für IoT-Programmierung mit C/C++“ erhalten Sie einen umfassenden Einblick in die Softwareentwicklung auf Internet-of-Things-Systemen (IoT) sowie in die damit verbundenen Sicherheitsrisiken und deren effektive ...