Dienstag, 29. Oktober 2019

11. November: Design by Contract & Error Handling Revisited

Am nächsten Treffen der C++ Usergroup haben wir gleich zwei Vorträge.

Design by Contract von Dominik Berner


100% der Softwarefehler werden vom Programmierer verursacht. Testen und Code Reviews helfen zwar, sind aber nicht genug. Viel schöner wäre es, wenn ich als Programmierer eine falsche Verwendung meines Codes von vornherein abfangen könnte.

Mit "Design by Contract" bekommen wir ein Werkzeug für genau diesen Zweck in die Hände. Aber nicht nur die Korrektheit, sondern auch die Lesbarkeit, Wartbarkeit und Robustheit des Codes werden damit erhöht. Auch wenn dieses Konzept nocht nicht nativ in C++ verfügbar ist, lässt es sich schon mit wenig Aufwand anwenden.

Wie funktioniert dieses Konzept? Wie setze ich es um? Und welchen Einfluss hat das auf das Testing? In diesem Vortrag werden die Antworten auf diese und weitere Fragen ausführlich erläutert.

Die Teilnehmer erhalten eine Einführung in "Design by Contract" sowie konkrete Hinweise zur Anwendung in bestehendem C++ Code. Nebst der Anwendung auf kleiner Stufe wird der Einsatz im kompletten Entwicklungszyklus besprochen. Die Teilnehmer erhalten die Möglichkeit, Fragen zum Konzept von "Design by Contract" zu stellen und das Konzept kritisch zu diskutieren.

C++ Error Handling Revisited von Raphael Meyer


Die Behandlung von Fehlern und Ausnahmesituationen ist nicht nur ein wichtiger Teil jeder Software, sondern oft auch sehr umfangreich. Gerade bei Embedded-Software, welche von der Interaktion mit Hardware geprägt ist, ist eine sorgfältige Fehlerbehandlung für den einwandfreien Betrieb der entwickelten Geräte unabdingbar.

Leider trägt die Fehler- und Ausnahmebehandlung aber oft dazu bei, dass Abläufe im Code schlechter lesbar sind. Der Code zu Ausnahmebehandlung drängt sich dazwischen und reißt die eigentlichen Abläufe visuell auseinander.

Funktionale Programmiersprachen bieten hier interessante Konzepte, welche nicht ganz neu sind, aber in letzter Zeit vermehrt wiederentdeckt werden. Wir werden einen kurzen Blick auf das Fehlerhandling in Haskell werfen und betrachten, wie sich diese Konzepte in C++ umsetzen und anwenden lassen. Dabei treffen wir auch einige neue Features aus C++17 an.


Agenda

  1. Begrüssung
  2. "Design by Contract" von Dominik Berner
  3. "C++ Error Handling Revisited" von Raphael Meyer
  4. Apéro


Ort



Datum

Montag 11.11.2019, 19 - 21 Uhr (Anschliessend Apéro)


Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser Webseite.


Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

Dienstag, 8. Oktober 2019

Global Day of Coderetreat

Am Samstag 16. November ist Global Day of Coderetreat. In Luzern moderieren Marco Ravicini und Raphael ein Coderetreat. Es findet in den Räumlichkeiten der bbv Luzern statt.
Coderetreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. By providing developers the opportunity to take part in focused practice, away from the pressures of 'getting things done', the coderetreat format has proven itself to be a highly effective means of skill improvement. Practicing the basic principles of modular and object-oriented design, developers can improve their ability to write code that minimizes the cost of change over time.
Details und Anmeldung: Coderetreat in Luzern

Mittwoch, 2. Oktober 2019

15. Okt.: Value Typen in der Praxis

Value Typen in der Praxis von Adrian Imboden

Wir verwenden verschiedene Value Typen im täglichen Programmiergebrauch. Zum Beispiel int, std::string, std::vector, char und noch viele mehr.
Doch wie oft sehen wir Value Typen die unsere Domäne abbilden, wie z.B. Person, Address, Age, Length oder Temperature?
Meistens sind unsere eigenen Typen ausschliesslich Heap-Alloziert und in komplexe Typ-Hierarchien integriert. Und wenn nicht, dann ist eine Temperatur einfach ein "int".
Mit anderen Worten: Genau das Gegenteil von fast allen Typen in der Sprache und der Standardbibliothek.
C++ gibt uns im Gegensatz zu den meisten anderen populären Programmiersprachen die Möglichkeit solche Typen sauber zu designen. Ganz nach dem Motto "Do it like an int would do".

Konkret werden wir einige einfache Anwendungsfälle sehen und auch selber Hand anlegen, um ein Gespür für solche Typen zu bekommen.

Agenda

  1. Begrüssung und Einführung
  2.  "Value Typen in der Praxis" von Adrian Imboden
  3. Apéro

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Di. 15.10.2019, 19 - 21 Uhr (Anschliessend Apéro)

Mitbringen

Entweder
  • Laptop mit Entwicklungsumgebung deiner Wahl für C++
  • oder Laptop mit Browser
Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

 

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser webseite.