Donnerstag, 28. Februar 2013

Erstes Treffen: C++11 Style

Das erste Treffen unserer C++ User-Group in Dresden findet am 13.3.2013 um 20.00 Uhr in der Wu5 (zur Webseite) statt. Der Sprecher ist Dr. Peter Gottschling (TU Dresden, Simunova). Peter wird einen Vortrag von Bjarne Stroustroup in eigener Interpretation wiedergeben (Beginn 20.15Uhr, mit Erlaubnis des Erstautors). Je nach Besucherwunsch wird der Vortrag auf Englisch oder Deutsch gehalten. Danach wird es Gelegenheit zum Erfahrungs- und Meinungsaustausch geben. Hier ein kleiner Inhaltsabriss:

We know how to write bad code: Litter our programs with casts, macros, pointers, naked new and deletes, and complicated control structures. Alternatively (or in addition), obscure every design decision in a mess of deeply nested abstractions using the latest object-oriented programming and generic programming tricks. Such code is incomprehensible, unmaintainable, usually inefficient, and not uncommon.
But how do we write good code? What principles, techniques, and idioms can we exploit to make it easier to produce quality code? I will make an argument for type-rich interfaces, compact data structures, integrated resource management and error handling, and highly-structured algorithmic code. I will illustrate my ideas and motivate my guidelines with a few idiomatic code examples including C++11 features.


[Wir wissen, wie wir schlechten Quelltext schreiben: Wir vermüllen unsere Programme mit "Casts", Makros, Zeigern, nackten "new" oder "delete"s und komplizierten Kontrollstrukturen. Alternativ (oder obendrauf) führen obskure Design-Entscheidungen zu einem Wirrwarr von tief-eingebetteten Abstraktionen mittels der aktuellsten Tricks aus objekt-orientierter und generischer Programmierung. Solcher Quelltext ist unverständlich, unwartbar, oftmals ineffizient und leider nicht selten.
Aber wie schreiben wir guten Code? Welche Prinzipien, Techniken und Faustregeln kann man nutzen, um leichter Quelltext hoher Qualität zu erzeugen? In diesem Vortrag werde ich den Standpunkt pro Schnittstellen reich an Typen, kompakten Datenstrukturen, integriertem Ressourcenmanagement und Fehlerbehandlung sowie hoch-strukturiertem algorithmischen Code vertreten. Diese Ideen werde ich durch typische Code-Beispiele u.a. mit C++11-Eigenschaften illustrieren und motivieren.]

Zahlreiches Kommen, Ratschläge, Tipps und konstruktive Kritik würden wir uns sehr freuen.