C++-Programmierstandards
C++-Programmierstandards
Zusammenfassung:
Einleitung
Das Buch „C++ Coding Standards: 101 Rules, Guidelines, and Best Practices“ (auf Deutsch: „C++-Programmierstandards: 101 Regeln und Empfehlungen“) erschien 2004, ist aber bis heute eines der maßgeblichsten Nachschlagewerke zu Stil und Codequalität in C++. Die Autoren – Herb Sutter und Andrei Alexandrescu – sind anerkannte Experten in der C++-Welt, deren Namen für tiefes Sprachverständnis und praktische Ratschläge stehen. Dieses Buch lehrt keine Syntax – es lehrt, zu denken wie ein professioneller C++-Entwickler.
Worum geht es in diesem Buch?
Das Buch ist eine Sammlung von 101 Regeln, gruppiert in thematische Abschnitte. Jede Regel wird von einer kurzen Begründung, Beispielen (oft mit „schlechten“ und „guten“ Varianten) und Verweisen auf weiterführende Quellen begleitet. Die Hauptthemen sind:
- Code-Organisation – korrekte Verwendung von Header-Dateien, Namensräumen, Vermeidung zyklischer Abhängigkeiten.
- Entwurf von Klassen und Schnittstellen – SOLID-Prinzipien, RAII-Idiom, Pimpl, Regel der Null/Fünf.
- Ressourcen- und Speicherverwaltung – sichere Verwendung von Smart Pointern, Vermeidung von Speicherlecks, Umgang mit Exceptions.
- Templates und generische Programmierung – wie man effiziente und portable Templates schreibt.
- Leistung – Optimierungstipps ohne Einbußen bei der Lesbarkeit.
- Exceptionsicherheit – Garantien: basic, strong, nothrow.
Für wen ist dieses Buch?
Das Buch richtet sich an Programmierer, die bereits mit den Grundlagen von C++ vertraut sind. Anfänger werden es schwierig finden – die Autoren erklären keine grundlegenden Konstrukte, sondern gehen direkt zu den Nuancen über. Der ideale Leser ist ein Entwickler, der von der Stufe „ich schreibe funktionierenden Code“ zur Stufe „ich schreibe zuverlässigen, effizienten und leicht wartbaren Code“ gelangen möchte.
Was lernt der Leser?
- Wie man 90% der typischen Fehler bei der Arbeit mit Speicher und Exceptions vermeidet.
- Warum
std::vectoroft besser ist alsstd::list, selbst wenn es anders scheint. - Wie man Schnittstellen so entwirft, dass sie schwer falsch zu verwenden sind.
- Wann man virtuelle Funktionen und wann man Templates einsetzt.
- Wie man Code schreibt, der bei Exceptions nicht „abstürzt“.
- Warum
constnicht nur ein Modifikator, sondern ein Entwurfswerkzeug ist.
Stärken des Buches
1. Praxisorientierung. Jede Regel ist ein fertiges Rezept, das sofort im Projekt angewendet werden kann. Keine abstrakte Theorie – nur das, was wirklich funktioniert.
2. Autorität der Autoren. Sutter und Alexandrescu sind nicht nur Theoretiker, sie waren aktiv an der Standardisierung von C++ und der Entwicklung von Compilern beteiligt. Ihre Ratschläge sind durch jahrelange Praxis erprobt.
3. Kompaktheit. 240 Seiten – das ist kein „Ziegelstein“, vor dem man Angst hat, ihn aufzuschlagen. Das Buch kann in einer Woche gelesen und dann als Nachschlagewerk auf dem Schreibtisch verwendet werden.
4. Verbindung zu anderen Quellen. Nach jeder Regel gibt es Verweise auf detailliertere Materialien: Bücher von Scott Meyers, Artikel im C++ Report, den Sprachstandard. Dies ist ein hervorragender Ausgangspunkt für weiterführendes Studium.
5. Die Sprache ist nicht veraltet. Trotz des Jahres 2004 sind 90% der Regeln auch für C++17/20 relevant. Einige Empfehlungen (z. B. die Vermeidung von std::auto_ptr) sind bereits Geschichte, aber die Autoren warnen davor.
Wem wird es empfohlen?
Das Buch ist Pflichtlektüre für:
- Entwickler, die mit C++ in der Produktion arbeiten – insbesondere in den Bereichen Finanzen, Spiele, hochlastige Systeme.
- Teamleiter und Architekten, die einheitliche Codestandards im Team etablieren möchten.
- Fortgeschrittene Studenten, die C++ vertieft studieren.
- Alle, die von C auf C++ umsteigen und „C with classes“ vermeiden möchten.