Sto scrivendo una libreria statica C++ e ho commentato con i commenti doxygen nei file di implementazione. Non ho mai dovuto preoccuparmi molto della documentazione, ma sto lavorando a qualcosa che deve essere documentato bene per gli utenti e sto anche cercando di sostituire la mia precedente cattiva abitudine di voler solo codificare e non documentare con una migliore ingegneria del software pratiche.Commenti di codice a duplice scopo (utenti e manutentori) ... COME?
In ogni caso, ho capito l'altro giorno che ho bisogno di un paio di tipi diversi di documentazione, un tipo per gli utenti della libreria (doxygen manual) e quindi commenti per me stesso o un futuro manutentore che si occupa maggiormente dei dettagli di implementazione.
Una delle mie soluzioni consiste nel mettere i commenti doxygen per file, classi e metodi nella parte inferiore del file di implementazione. Lì sarebbero fuori strada e potrei includere commenti normali dentro/intorno alle definizioni dei metodi a beneficio di un programmatore. So che è più lavoro, ma mi sembra il modo migliore per ottenere i due diversi tipi di commenti/documentazione. Sei d'accordo o hai qualche soluzione/principio che potrebbe essere utile. Ho guardato il sito ma non sono riuscito a trovare alcun thread che lo riguardasse.
Inoltre, non voglio davvero sporcare il file dell'interfaccia con i commenti perché ritengo sia meglio lasciare che l'interfaccia parli da sola. Preferirei che il manuale fosse il posto che un utente può vedere se ha bisogno di una comprensione più profonda dell'interfaccia della libreria. Sono sulla strada giusta qui?
Qualsiasi pensiero o commento è molto apprezzato.
modifica: Grazie a tutti per i vostri commenti. Ho imparato molto dal sentirli. Penso di avere una migliore comprensione di come separare il mio manuale utente dai commenti del codice che saranno utili a un maintainer. Mi piace l'idea che @jalf abbia un manuale in stile "prosa" che spiega come utilizzare la libreria. Penso davvero che sia meglio di un semplice manuale di riferimento. Detto questo ... Mi sento anche come se il manuale di riferimento potesse tornare utile. Penso che unirò il suo consiglio con i pensieri degli altri e cercherò di creare un ibrido. (Un manuale in prosa (usando i tag doxygen come pagina, sezione, sottosezione) che rimanda al manuale di riferimento.) Un altro suggerimento che mi è piaciuto da @jalf era l'idea del codice che non aveva un intero manuale interlacciato. Posso evitarlo mettendo tutti i miei commenti doxygen nella parte inferiore del file di implementazione. Ciò lascia le intestazioni pulite e l'implementazione pulita per inserire commenti utili a chi mantiene l'implementazione. Vedremo se questo funziona nella realtà. Questi sono solo i miei pensieri su ciò che ho imparato finora. Non sono sicuro che il mio approccio funzionerà bene o addirittura sarà pratico. Solo il tempo lo dirà.
grazie jalf ... anche questo mi sembra molto sensato. Stavo pensando che la mia documentazione generata da doxygen potrebbe essere un po 'difficile da leggere per un utente. È carino in qualche modo, ma sentivo che mancava una spiegazione reale su come usare la libreria, ma pensavo che forse avrei dovuto essere più descrittivo. Una domanda: avresti un uso per doxygen dato i tuoi commenti sopra? – csmithmaui
Personalmente non lo farei. Ma questa è la mia opinione soggettiva. Ho esigenze molto diverse durante la lettura del codice e durante la lettura della documentazione. Nella documentazione, voglio i dettagli. Voglio una descrizione di alto livello e tutti i dettagli e la semantica grintosa. E va bene che occupa molto spazio. Nel codice però? La proprietà dello schermo è un premio. Ogni linea è costosa, riduce la quantità di codice che posso vedere e quindi mi impedisce di formare una panoramica del codice. Nel codice voglio il minor rumore possibile, e io * voglio * la maggior parte delle informazioni da escludere, ei commenti devono essere brevi. – jalf
fantastica descrizione di quando e come aggiungere commenti. Ma non sarei d'accordo sul fatto che tutta questa descrizione * sia * al di fuori del codice. Dove vengono archiviati i commenti non è una grande preoccupazione per me. –