Rezension “Der C++ Programmierer” von Ulrich Breymann

Ein Praxisbuch für alle, Einsteiger und auch Profi, soll es sein. Das verspricht das Buch “Der C++ Programmierer” von Ulrich Breymann, erschienen im Hanser Verlag, auf seiner Rückseite. Ist es das wirklich? Diese und ein paar andere Fragen soll die nachfolgende Rezension klären.

Die Themen

Eingeteilt ist der C++ Programmierer in fünf Teile:

  • Einführung in C++
  • Bausteine komplexer Anwendungen
  • Praktische Methoden und Werkzeuge der Softwareentwicklung
  • Das C++ Rezeptbuch: Tipps und Lösungen für typische Aufgaben
  • Die C++ Standardbibliothek

Dabei bildet der letzte Teil eine Sammlung von Code Snippets und Ideen für Alltagsprobleme eines Programmierers. Aber der Reihe nach

Teil 1 – C++ Einführung

Der Einstieg beginnt mit dem obligatorischen Blick auf die Historie von C++. Es werden einige Entwicklungsumgebungen erwähnt und die wichtigsten Datentypen vorgestellt. Überraschend ist, dass auch die Referenzen bereits sehr früh im Buch und dabei eher nebenbei erklärt werden. Das ist nicht unbedingt optimal, gerade für Einsteiger.

Weiter geht es mit einem Abriss von gängigen Kontrollstrukturen. Auch hier ist das ganze relativ knapp gehalten. Echte Einsteiger müssen die Beispiele teilweise sicher zwei mal lesen um sie nachvollziehen zu können. Auch ungünstig: Es wird,  statt auf Arrays einzugehen, sofort das vector Template vorgestellt. Für Fortgeschrittene und Profis ist das natürlich vollkommen in Ordnung. Anfänger dürften jedoch Probleme bei so einem Thema bekommen.

Des Weiteren umfasst der erste Teil des Buches die simple Ein – und Ausgabe an der Konsole, die Programmstrukturierung in  Funktionen, modulare Programmgestaltung und Funktionstemplates. Allerdings sind auch letztere wieder relativ alleinstehend. Ein eigenes Template Kapitel hätte da womöglich mehr Sinn ergeben.

Umfassend wird es dann mit dem Thema Objektorientierung. Hier wird eine fundierte und logische Einführung in das Thema und vor allem die C++ Spezifika in dieser Hinsicht gegeben. Dazu gibt es außerdem ein wunderbares Beispiel (Rationale Zahlen). Unterbrochen wird das Kapitel nur, um eine für Anfänger noch schwierigere Sache anzugehen: Die Zeiger. Breymann schafft hier den Spagat zwischen einfachen Beispielen und Anspruch, zeigt schlüssig die Möglichkeiten, auch von C-Arrays und Zeichenketten. Dynamische Datenobjekte werden nach der Lektüre dieses Kapitels auch kein Geheimnis mehr sein. Außerdem wird das, was beim Aufruf des new Schlüsselwortes im Hintergrund geschieht, vielleicht sogar von einigen gestandenen Programmierern noch besser verstanden werden.

Fortgesetzt wird dann mit dem zweiten Teil der Objektorientierung. Wer immer schon mal wissen wollte, wie man eine eigene String Klasse bauen könnte, ist hier richtig. Hierbei werden auch gleich Klassentemplates eingeführt, wobei ich bei meiner Kritik bleibe, dass man dazu noch mal ein eigenes Kapitel hätte bringen können.

Natürlich darf auch die Vererbung nicht fehlen. In diesem Bereich werden klar und schlüssig Vor – und Nachteile und die entsprechende C++ Umsetzung gezeigt.

Eher kurz wird auf Fehlerbehandlung eingegangen, umso größer ist dafür das Kapitel über das Überladen von Operatoren. Dazu wird das Rationale Zahlen Beispiel von vorher umgemodelt. Für Profis bietet dieses Kapitels mit der Überladung von new und delete bis hin zur eigenen Speicherverwaltung mit Smartpointern auch einiges.

Ebenfalls im Profibereich angesiedelt sind die folgenden Kapitel. Hier geht es um Dateien und Ströme, die Standard Template Library (STL), Reguläre Ausdrücke und Threads (genutzt werden vor allem Boost Libraries).

Teil 2 – Bausteine komplexer Anwendungen

Dieser Teil des Buches umfasst sehrt fortgeschrittene Themen, z.B. Grafische Benutzeroberflächen oder Internet – und Datenbankanbindung. Dabei wird keine Allgemeingültigkeit beansprucht, sondern nur anhand einiger diverser C++ Bibliotheken (QT und Boost) gezeigt, wie man es machen könnte.

Teil 3 – Praktische Methoden der SW-Entwicklung

Auch hier geht es wieder um Profithemen. Vor allem Unixfreunde kommen auf ihre Kosten, dreht sich doch ein Kapitel um die Automatisierung von Abläufen via make.

Außerdem wird anhand von Boost gezeigt, wie man Unit Tests für C++ Programme schreibt, wie man mit doxygen Quellcode dokumentiert oder welchen Nutzen eine Versionskontrolle bringt.

Die jeweiligen Themen werden zwar nur kurz behandelt, das wichtigste wird jedoch kompetent und prägnant rübergebracht.

Teil 4 – Rezeptbuch

Dieser vorletzte Teil des Buches widmet sich erst mal einigen Rezepten zur Lösung von Alltagsproblemen in C++. Wirklich praktische wenn man noch mal schnell nachschlagen möchte, wie man das Ableiten von bestimmten Klassen unterbinden kann.

Allerdings wird in diesem vierten Teil auch einiges anderes geboten. Genannt seien nur die UML, Performanceaspekte bei C++, effektive Programmerzeugung und und und.

Oben drauf gibt es noch viele viele Algorithmen, in C++ implementiert. Strings, Textverarbeitung, Sortieren, Suchen, komplexe Zahlen. Dieses Kapitel bietet beinahe alles, was das Programmiererherz begehrt. Der Autor schöpft dabei natürlich auch aus seiner offensichtlich jahrelangen Erfahrung.

Teil 5 – Die C++ Standardbibliothek

Im letzten Teil des Buches ist dann die C++ Standardbibliothek das zentrale Thema. Natürlich nicht die gesamte, das wäre unmöglich. Die wichtigsten Aspekte sind jedoch abgedeckt. Dabei wird vor allem noch mal auf Container, Iteratoren usw. eingegangen.

Aber auch Themen wie Lokalisierung, Speichermanagement oder optimierte numerische Arrays werden zumindest angeschnitten.

Den Abschluss bildet ein noch ziemlich umfangreicher Anhang, der den sehr guten Gesamteindruck des Buches perfekt abrundet.

Fazit

Trotz kleinerer Kritikpunkte im Aufbau hat dieses Buch dennoch klar die Bestnote verdient, denn inhaltlich ist es beispiellos. Derartig umfassend, konkret und prägnant findet man das Thema C++ selten aufbereitet. Für Fortgeschrittene und Profis ist das Buch eigentlich ein Muss, für absolute Neulinge würde ich vorerst ein C++ Einstiegsbuch empfehlen.

Mir selbst hat das Buch einige Male die rettende Antwort gebracht und mich somit vor einigen grauen Haaren bewahrt. Neben “Die C++ Programmiersprache” ist dieses sicher DAS Buch, die Bibel zu C++. Klare Kaufempfehlung also.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s