Also für mich ist es sehr wichtiig, dass ich in den Kommentaren alles finde was ich zum verstehen des Sources brauche.
Demnach schreibe ich auch ab und zu etwas mehr, wenn nicht klar ist, wie etwas zusammenhängt.
Ausserdem finde ich persönlich immer wichtig zu wissen, WARUM man etwas so programmiert hat, wie es jetzt da steht.
Die Doku der API o.ä. würde ich garnicht in den Source schreiben.
Meiner Meinung nach sind Doxygen und co. meist überflüssig, weil das Ergebnis keine sinnvolle verwendung hat.
Zu einer Doku gehören so viele Teile, dass es im Code einfach keinen Sinn macht, das zu hinterlegen.
Da fängt es an mit einer allgemeinen Übersicht, den verwendeten Konzepten usw. um sich einen groben Überblick zu verschaffen.
Danach geht es dann darum einige Themenbereiche näher zu erläutern, sowie die öffentliche API zu beschreiben.
Als Beispiel nehme ich mal eine DirectX Doku.
Was sehen wir hier alles?
Zunächst kommt mal ein grobes Themenverzeichnis und ein Kapitel namens "Programming Guide".
Darin werden z.B. Konzepte erläutert wie Buffer, Ressourcen, usw.
Weiterhin gibt es generelle Tipps & Tricks zu der Verwendung.
Ich sehe keinen Platz, wo ich das in Doxygen o.ä. sinnvoll platzieren würde.
Der zweite Teil "Reference" besteht dann letztendlich in der Auflistung der Interfaces usw.
Hier könnte man gut mit Doxygen und co. arbeiten.
Aber: nur der offizielle Teil (API) gehört hier rein.
Und wenn ich dann im Source sehe, dass es für die Hälfte der Funktionen Doxygen/Javadoc Tags gibt, und für die andere Hälfte nicht, finde ich das auch nicht wirklich toll.
Tutrials usw. in den Source zu packen ist auch irgendwie Quatsch.
Daher find ich Kommentare im Source und eine externe Doku am besten.
Ein Wiki macht sich da meist ganz gut, da kann man dann auch Links setzen uvm.
Mal ein paar andere Beispiele:
SFML: Sehr schön ist hier das Wiki mit Tutorials.
In die Doxygen Doku schaut man doch eher selten. Schaut euch z.B. mal die Klasse "sf::Clock" im Doxygen dort an. Die einzige wichtige Info da drin ist, dass die "GetElapsedTime"-Methode die Zeit in Sekunden zurückgibt.
Z.B. das "Clock()" der Default Contructor ist, da wäre ich vermutlich noch selbst drauf gekommen, aber den ganzen Text hat ja mal jemand eingetippt.
AssImp:
Wichtig wären hier für mich 4 Sachen:
- Wie lade ich Files?
- Wie sieht die Struktur aus, die AssImp mir letztendlich zur Verfügung stellt?
- Was wird unterstützt (z.B. in welchem Format werden Animationen, usw. mit verarbeitet)?
- Wie füge ich meinen eigenen Loader ein?
Für alles weitere ging vermutlich unnötig viel Zeit drauf (abgesehen von der Website, eine gute Präsentation halte ich für wichtig, dafür Daumen hoch).
PS: Überragende Library übrigends, gibt nichts vergleichbares! Großes Lob an der Stelle, auch im Bezug auf die Wahl der Lizenz ("Frei" bedeutet für mich auch, die Freiheit zu haben, meinen Source NICHT zu veröffentlichen)!
Ganz wichtig finde ich auch noch die Anmerkung, dass die Doku immer mit gepflegt werden muss! Also, je weniger Doku ich habe, umso weniger muss ich pflegen.
Daher gilt für mich: So wenig Doku wie möglich, so viel Doku wie nötig.
Aber das ist alles natürlich nur meine persönliche Meinung, also Danke fürs lesen und lasst euch nicht aufhalten

Gruß, NytroX.