Der gesunde Menschenverstand sagt, dass die Doxygen-Kommentarblöcke in die Header-Dateien geschrieben werden müssen, in denen sich die Klassen, Strukturen, Aufzählungen, Funktionen und Deklarationen befinden. Ich stimme zu, dass dies ein solides Argument für eine Bibliothek ist, die ohne ihre Quelle verteilt werden soll (nur Header und Bibliotheken mit Objektcode).Wohin mit den Doxygen Kommentarblöcken für eine interne Bibliothek - in H oder in CPP-Dateien?
ABER ... Ich habe über das genaue Gegenteil nachgedacht, wenn ich eine interne zu der Firma (oder als ein Nebenprojekt für mich selbst) Bibliothek entwickle, die mit seinem vollen Quellcode benutzt wird. Was ich vorschlage, ist, die großen Kommentarblöcke in die Implementierungsdateien (HPP, INL, CPP usw.) zu setzen, um NICHT die Oberfläche der Klassen und Funktionen zu verwerfen, die im Header deklariert sind.
Pro:
- Weniger Unordnung in den Header-Dateien können nur Kategorisieren der Funktionen hinzugefügt werden.
- Die Kommentarblöcke, die in der Vorschau angezeigt werden, wenn Intellisense zum Beispiel verwendet wird, kollidiert nicht - das ist ein Fehler, den ich beobachtet habe, wenn ich einen Kommentarblock für eine Funktion in der .H-Datei habe und seine Inline-Definition habe .H-Datei, aber aus der .INL-Datei enthalten.
Nachteile:
- (Die offensichtlichste) Die Kommentarblöcke sind nicht in den Header-Dateien, in denen die Erklärungen sind.
Also, was denkst du und möglicherweise vorschlagen?
Ich hatte eine schmerzhafte Erinnerung daran, warum Docs in Headern vermieden werden sollten - wurde von einem Senior VP angewiesen, Methodenkommentare in die Klassendeklaration zu schreiben und fand, dass ich Kommentaränderungen für später speichere, weil das Treffen dieser Header einen 45-minütigen Build auslöst Zeit! –
Keine Ablehnung, nur Fragen: Wenn ich herausfinden möchte, was eine API (auch eine interne API) tut, muss ich die .cpp-Datei nicht öffnen und den gesamten Code durchsuchen, um die Dokumentation zu finden. Ich gebe zu, es wäre ein Schmerz, wenn Sie mehr als nur die Sichtweise des Kunden über die Methode dokumentieren (wie * wie * es tut), aber Sie sollten das sowieso nicht machen, oder? –
Der Hauptgrund, Doxygen zu verwenden, um Ihre Dokumentation zu generieren, besteht darin, die generierte Dokumentation zugänglich zu machen. Wir haben einen internen Webserver, auf dem die Doxygen-Ausgabe läuft, und wir können dann Links zu Seiten auf diesem Server in Diskussionen verwenden. Das verbindet auch die Klassen- oder Methodendokumentation mit zusätzlichen Seiten, die umfassendere Designfragen diskutieren. –