Dokumentation in C++: Wie man Code schreibt, der für sich selbst spricht

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Dokumentation in C++-Projekten: Die Kunst, mit dem zukünftigen Ich zu sprechen

\n\n

Geben Sie es ehrlich zu: Wie oft haben Sie Ihren eigenen Code, den Sie vor einem halben Jahr geschrieben haben, geöffnet und sich wie ein Archäologe gefühlt, der antike Ruinen ausgräbt? In C++ ist dieses Problem besonders akut. Eine leistungsstarke, aber komplexe Sprache mit Templates, Smart Pointern und RAII kann jedes Projekt in ein Rätsel verwandeln, wenn man nicht die besten Praktiken der C++-Dokumentation beachtet.

\n\n

In diesem Artikel werden wir untersuchen, wie man C++-Code richtig dokumentiert, damit er nicht nur für den Compiler, sondern auch für Menschen verständlich ist. Sie erfahren, welche Tools Sie verwenden sollten, wie Sie selbstdokumentierenden Code schreiben und wie Sie typische Fehler vermeiden, die die Dokumentation in bedeutungsloses Rauschen verwandeln.

\n\n

Warum C++-Dokumentation nicht nur „unnötige Arbeit“ ist

\n\n

Viele Entwickler betrachten Dokumentation als notwendiges Übel: „Der Code spricht für sich selbst!“ – verkünden sie und hinterlassen eine Klasse Foo mit einer Methode bar(). Aber sehen wir der Wahrheit ins Auge: Dokumentation von C++-Projekten ist eine Investition. Sie zahlt sich aus, wenn:

\n\n
    \n
  • Sie nach einem Monat zum Projekt zurückkehren.
  • \n
  • Ein neuer Entwickler zum Team stößt.
  • \n
  • Sie einen Fehler in fremdem (oder eigenem) Code suchen.
  • \n
  • Die API einer Bibliothek von externen Nutzern verwendet wird.
  • \n
\n\n

Studien zeigen, dass Entwickler bis zu 60% ihrer Zeit damit verbringen, vorhandenen Code zu verstehen. Gute Dokumentation verkürzt diese Zeit um ein Vielfaches. Aber wie macht man sie wirklich nützlich?

\n\n

Dokumentationswerkzeuge: Doxygen und mehr

\n\n

In der Welt von C++ ist der De-facto-Standard Doxygen. Dieses Tool parst spezielle Kommentare und generiert daraus HTML, PDF, LaTeX und andere Formate. Sehen wir uns an, wie das funktioniert.

\n\n

Grundlegende Doxygen-Syntax

\n\n

Doxygen unterstützt mehrere Kommentarstile. Hier sind die gängigsten:

\n\n
/**\n * @brief Kurzbeschreibung der Klasse.\n * \n * Die detaillierte Beschreibung kann mehrere Absätze umfassen.\n * Hier kann erklärt werden, wie die Klasse funktioniert und wie sie verwendet wird.\n * \n * @tparam T Datentyp für die Speicherung.\n */\ntemplate <typename T>\nclass MyContainer {\npublic:\n    /**\n     * @brief Fügt ein Element am Ende des Containers hinzu.\n     * \n     * @param value Konstanter Verweis auf das hinzuzufügende Element.\n     * @return true, wenn das Element erfolgreich hinzugefügt wurde.\n     * @return false, wenn der Container voll ist.\n     */\n    bool push_back(const T& value);\n    \nprivate:\n    T* data_;\n    size_t size_;\n    size_t capacity_;\n};
\n\n

Wichtige Doxygen-Tags:

\n
    \n
  • @brief — Kurzbeschreibung (wird in der Übersicht angezeigt).
  • \n
  • @param — Beschreibung des Funktionsparameters.
  • \n
  • @return — Beschreibung des Rückgabewerts.
  • \n
  • @tparam — Beschreibung des Template-Parameters.
  • \n
  • @note — Wichtiger Hinweis.
  • \n
  • @warning — Warnung.
  • \n
  • @see — Verweis auf verwandten Code.
  • \n
\n\n

Alternativen zu Doxygen

\n\n

Obwohl Doxygen der König ist, gibt es auch andere Tools:

\n
    \n
  • Sphinx mit der Breathe-Erweiterung – für Liebhaber des Python-Ökosystems.
  • \n
  • Standardese – ein moderner Dokumentationsgenerator mit Markdown-Syntax.
  • \n
  • Moxygen – konvertiert Doxygen in Markdown.
  • \n
\n\n

Aber für die meisten Projekte bleibt Doxygen aufgrund seiner Reife und Flexibilität die optimale Wahl.

\n\n

Dokumentation schreiben, die gelesen wird

\n\n

Kommen wir nun zum Wichtigsten: Wie schreibt man Dokumentation von C++-Code, die nützlich ist und nicht nur eine formale Befüllung von Tags darstellt.

\n\n

Regel 1: Kommentieren Sie das „Warum“, nicht das „Was“

\n\n

Der häufigste Fehler von Anfängern ist es, Offensichtliches zu kommentieren. Sehen Sie sich dieses Beispiel an:

\n\n
// Schlecht: Der Kommentar liefert keine Information\nint x = 5; // Weist der Variable x den Wert 5 zu\n\n//                

Blogs

Buchempfehlungen