Mittagspause von 12:30 bis 13:30
09:00 Uhr
Fehler früher finden, Code-Duplizierung vermeiden und mehr
Interaktives Kompaktseminar basierend auf drei praxisnahen Code-Beispielen
Details anzeigen
Autor:in:
Martin Weitzel | Technische Beratung für EDV | Germany
Sprache:
Vortrag deutsch (Unterlagen/Präsentation englisch)
Zielgruppe:
C++ Software-Designer und -Entwickler*innen
Voraussetzungen:
leicht fortgeschrittene bis gute Kenntnisse von C++
Überblick und Zusammenfassungen:
Dieses Kompaktseminar umfasst drei Hauptteile, die miteinander in losem Zusammenhang stehen. Jeder dieser Teile kombiniert auf Code-Walks beruhende Vortragselemente mit explorativen Phasen und endet mit einer Diskussion der Ergebnisse.
Part 1: Why not let the Compiler find more easy errors?
At school or university you may have learned about "dimensional analysis" and how it is useful to spot easy errors when you derive a complicated formula dealing with physical units. Based on C++ operator overloading the compiler can very well do the required checking for you too.
A ready to use solutions is provided by "Boost.Units". Alternatively one can tailored to your specific requirements be "hand-written". The pro's and con's of both approaches are shown.
Part 2: The C++-Preprocessor vs. C++-Templates vs. Simple Code Generators
The disadvantage of rolling a non-template based solution for dimensional analysis (according to part 1) is a lot of quite similar looking, systematic code. This part looks into general approaches that may help to make your C++ code more DRY (= "Don't Repeat Yourself").
Part 3: "Embedded C++" but no physical hardware? Fake it until you make it!
There are two reasons why that might be desirable:
(1) You don't (yet) have the real target hardware available, maybe because you still in a "proof of concept" phase or your software development starts early, well before the phyiscal hardware is available.
(2) You want to teach "Embedded C++" to students giving them a "realistic embedded programming experience" right from the start but you can't afford to equip everybody with a piece of the physical hardware.
In both case C++ operator overloading can provide a simple solution. (Just wait and see.)
Art der Vermittlung:
Die Vortragsphasen finden ggf. "klassisch" per Beamer statt. Alternativ besteht die Möglichkeit zur Teilnahme via browserbasiertem Telko-System mit integrierter C++ Online-IDE auf eigenem Laptop. In den eingestreuten explorativen Phasen wird vorzugsweise selbstständig in Kleingruppen oder "solo" gearbeitet. Bei Notwendigkeit kann jedoch der Referent über eines System zum kollaborativen Editieren hinzugezogen werden.
Nutzen:
Alle drei Beispiele zusammengenommen ergibt sich allgemein:
* Verbesserung der Software-Qualität durch erweiterte Prüfungen seitens des Compilers.
* Bessere Software-Wartbarkeit durch Reduzierung von systematischem Code
* Steigerung der persönlichen Anwendungskompetenz hinsichtlich der C++ "Operator-Überladung".
* Unterstützung des TDD-Ansatzes (= "Test-Driven Development") für "Embedded C/C++".
Der vorgestellte C++-Code ist lizenzfrei und durch die explorativen Phasen ist die Einstiegsschwelle für ggf. notwendige Anpassungen auf ähnlich gelagerte Fälle niedrig.