Estoy escribiendo una biblioteca estática de C++ y he estado comentando con los comentarios de doxygen en los archivos de implementación. Nunca tuve que preocuparme mucho por la documentación, pero ahora estoy trabajando en algo que debe documentarse bien para los usuarios y también estoy tratando de reemplazar mi mal hábito anterior de solo querer codificar y no documentar con una mejor ingeniería de software. prácticas.Comentario de código de doble propósito (usuarios y mantenedores) ... ¿CÓMO?
De todos modos, el otro día me di cuenta de que necesito un par de tipos diferentes de documentación, un tipo para usuarios de la biblioteca (manual de doxygen) y luego comentarios para mí o un futuro mantenedor que se ocupe más de los detalles de implementación.
Una de mis soluciones es colocar los comentarios doxygen para el archivo, la clase y los métodos en la parte inferior del archivo de implementación. Allí estarían fuera del camino y podría incluir comentarios normales en/alrededor de las definiciones del método para beneficiar a un programador. Sé que es más trabajo, pero me parece la mejor manera de lograr los dos tipos de comentarios/documentación por separado. ¿Está de acuerdo o tiene alguna solución/principio que podría ser útil? Miré alrededor del sitio pero no pude encontrar ningún hilo que tratara con esto.
Además, realmente no quiero ensuciar el archivo de interfaz con comentarios porque siento que es mejor dejar que la interfaz hable por sí misma. Preferiría que el manual sea el lugar donde el usuario puede mirar si necesita una comprensión más profunda de la interfaz de la biblioteca. ¿Estoy en el camino correcto aquí?
Cualquier idea o comentario es muy apreciada.
editar: Gracias a todos por sus comentarios. He aprendido mucho de escucharlos. Creo que entiendo mejor cómo separar el manual de usuario de los comentarios del código que serán útiles para el mantenedor. Me gusta la idea que tiene @jalf de tener un manual de estilo en "prosa" que ayude a explicar cómo usar la biblioteca. Realmente creo que esto es mejor que solo un manual de referencia. Dicho eso ... también siento que el manual de referencia podría ser útil. Creo que combinaré sus consejos con los pensamientos de los demás e intentaré crear un híbrido. (Un manual en prosa (usando las etiquetas doxygen como página, sección, subsección) que enlaza con el manual de referencia.) Otra sugerencia que me gustó de @jalf era la idea de que el código no tuviera todo un manual intercalado. Puedo evitar esto colocando todos mis comentarios doxygen en la parte inferior del archivo de implementación. Eso deja los encabezados limpios y la implementación limpia para colocar comentarios útiles para alguien que mantiene la implementación. Veremos si esto funciona en la realidad. Estos son solo mis pensamientos sobre lo que he aprendido hasta ahora. No estoy seguro de que mi enfoque vaya a funcionar bien o incluso que sea práctico. Sólo el tiempo dirá.
gracias jalf ... esto también tiene mucho sentido para mí. Estaba pensando que mi documentación generada por doxygen podría ser un poco difícil de leer para un usuario. En cierto modo, es agradable, pero sentía que faltaba una explicación real sobre cómo usar la biblioteca, pero pensé que tal vez debería ser más descriptivo. Una pregunta: ¿Tendría algún uso para doxygen teniendo en cuenta sus comentarios anteriores? – csmithmaui
Yo personalmente no lo haría. Pero esa es mi opinión subjetiva. Tengo necesidades muy diferentes al leer el código y al leer la documentación. En la documentación, quiero detalles. Quiero una descripción de alto nivel y todos los detalles y la semántica. Y está bien que ocupe mucho espacio. En el código sin embargo? Screen Estate es una prima. Cada línea es costosa, reduce la cantidad de código que puedo ver, y por lo tanto me impide formar una visión general del código. En el código quiero el menor ruido posible, y * quiero * que la mayor parte de la información quede fuera, y los comentarios sean breves. – jalf
fantástica descripción de cuándo y cómo agregar comentarios. Pero no estoy de acuerdo con que toda esta descripción * tenga * fuera del código. Dónde se guardan los comentarios no es una gran preocupación para mí. –