Mittagspause von 12:30 bis 13:30
09:00 Uhr
Modernes C++ Design
Bodenständig einfache Richtlinien für C++
Details anzeigen
Autor:in:
Peter Sommerlad | Better Software: Consulting, Training, Reviews Modern, Safe & Agile C++ | Switzerland
Sprache:
Deutsch
Zielgruppe:
Software-Entwickler
Voraussetzungen:
C++ Grundkenntnisse, besser mehrjährige C++ Entwicklungserfahrung
Überblick und Zusammenfassungen:
Seit C++11 haben sich viele Designpraktiken für C++ geändert, aber nicht alle Wissensquellen bieten einen konsistenten und überschaubaren Einblick, wie diese sinnvoll genutzt werden sollten. Dieser Workshop wird nicht die neuen Features einzeln erklären, sondern Designunterstützung geben, wie sie im täglichen Entwicklungsbedarf notwendig sind. So wird gezeigt, wie gutes Design mit weniger Code erreicht werden kann. Ein Modell für die bewusste Gestaltung von Klassen wird eingeführt und gezeigt, wo man dabei sich um Move-Semantik und "special member functions" kümmern muss und wo man sich auf die Automatismen des Compilers verlassen kann.
Gute Schnittstellen für Funktionen sind zum einen wenig fehlerträchtig durch geeignete Parametertypen und zum anderen melden sie eventuelle Fehler adäquat dem Aufrufer. Diese Aspekte werden erläutert und gezeigt, welche Optionen für die Fehlermeldung durch eine Funktion bestehen, und wie man diese bewusst auswählt. Parametersicherheit kann man mit Hilfe von "strong typing" erreichen. Damit werden überraschungen, z.B. durch implizite Konvertierungen oder fehlerhafte Reihenfolge von Argumenten verhindert.
Für den embedded Bereich ist sichere Ganzzahlarithmetik ohne undefined behavior oder Überraschungen durch implizite Konvertierungen ein Gebiet, das im Workshop ohne Laufzeitoverhead demonstriert wird.
Verschiedene Konzepte zur dynamischen und statischen Polymorphie werden nebeneinander vorgestellt und ihre bewusste Auswahl im Designkontext gezeigt.
Art der Vermittlung:
Vortrag, live Coding und Interaktion
Nutzen:
C++ Entwickler lernen bewusst die Sprachmittel für modernes C++ Design einzusetzen: ohne Resource-Lecks, ohne unsicheren Code und mit wenig elegantem Code viel in hoher Qualität zu erreichen.