El sentido común dice que los bloques de comentarios de Doxygen deben colocarse en los archivos de encabezado donde están las clases, estructuras, enumeraciones, funciones, declaraciones. Estoy de acuerdo en que este es un argumento sólido para las bibliotecas que están destinadas a ser distribuidas sin su fuente (solo encabezados y libs con código de objeto).Dónde colocar los bloques de comentario doxygen para una biblioteca interna - en H o en archivos CPP?
PERO ... He estado pensando en el enfoque exactamente opuesto cuando estoy desarrollando una biblioteca interna a la empresa (o como un proyecto paralelo para mí) que se utilizará con su código fuente completo. Lo que propongo es colocar los bloques de comentarios grandes en los archivos de implementación (HPP, INL, CPP, etc.) para no saturar la interfaz de las clases y funciones declaradas en el encabezado.
Pros:
- Menos desorden en los archivos de cabecera, sólo se pueden añadir categorización de las funciones.
- Los bloques de comentarios que se ven de antemano cuando Intellisense, por ejemplo, se utiliza no entrar en conflicto - este es un defecto que he observado cuando tengo un bloque de comentario a una función en el archivo .H y tienen su definición en línea de la misma .H archivo pero incluido desde el archivo .INL.
Contras:
- (la más obvia) Los bloques de comentarios no están en los archivos de cabecera cuando las declaraciones son.
Así que, ¿qué te parece y posiblemente sugiere?
He tenido un doloroso recordatorio de por qué los documentos deben evitarse. Un vicepresidente senior me dijo que pusiera comentarios de método en la declaración de clase y me encontré ahorrando ediciones de comentarios para más tarde porque al tocar esos encabezados desencadena una compilación de 45 minutos ¡hora! –
No bajamos, solo cuestionando: si estoy tratando de descubrir qué hace una API (incluso una interna), prefiero no tener que abrir la .cpp y recorrer todo el código para encontrar la documentación. Admitiré que sería doloroso documentar algo más que la opinión del cliente sobre lo que está haciendo el método (como * cómo * lo hace), pero no deberías estar haciendo eso de todos modos, ¿verdad? –
El objetivo de utilizar Doxygen para generar su documentación es tener la documentación generada accesible. Tenemos un servidor web interno donde se envía la salida de Doxygen y luego podemos usar enlaces a páginas en ese servidor en discusiones. Eso también vincula la documentación de clase o método con páginas adicionales que discuten problemas de diseño más amplios. –