[Programación] Re: [LUG.ro] Proyecto suscripción a jornada
s
Nicolás Aimetti
programacion@lugro.org.ar
Wed, 30 Nov 2005 01:40:36 -0300
Doxigen, el tema pendiente...
Lo que hace básicamente doxygen es generar documentación acerca de un
proyecto en particular
a partir de los datos obtenidos al parsear las fuentes del mismo. Lo
cual implica que así
nosotros no hayamos documentado aun nada de un proyecto doxygen puede
decirnos bastantes cosas acerca del mismo, como por ejemplo que
funciones se encuentran definidas en tal proyecto, en que archivos
están, sus prototipos, que clases hay definidas, que atributos poseen,
que métodos públicos, que métodos privados, etc...
El tema es ir luego uno nutriendo toda está información con datos extras
como por ejemplo para que sirve tal función, que valor devuelve, que
guarda tal variable y demás...
¿Como se logra esto? Mediante comentarios en el código que doxygen es
capaz de interpretar. (tb se pueden especificar en un archivo separado,
es bastante flexible).
Doxygen procesa todo comentario que empiece de la forma
/**
Comentario
*/
o bien
/*! Comentario
*/
o bien
///
/// ... text ...
///
y otras cuantas formas más:
http://www.stack.nl/~dimitri/doxygen/docblocks.html
Uno puede documentar una función de la siguiente manera:
/**
Reemplaza la extension del del archivo $file por $sfx
*/
function cambiar_sufijo($file,$sfx) {
etc...
O mejor aun...
/*!
Reemplaza la extencion del del archivo $file por $sfx
\param $file nombre del archivo
\param $sfx Sufijo (sin el punto).
\return 0 en caso de exito, != 0 en caso contrario.
*/
function cambiar_sufijo($file,$sfx) {
etc...
Doxigen entiende ciertos comandos dentro de los comentario que parsea,
como por ejemplo
\param el cual le especifica que el siguiente comentario se aplica a un
parametro de la funcion,
\return que se aplica al valor que devuelva la función...
La lista de estos comando es larga:
http://www.stack.nl/~dimitri/doxygen/commands.html
además se pueden especificar comandos html:
http://www.stack.nl/~dimitri/doxygen/htmlcmds.html
y hacer un montón de cosas más...
Espero que vayan entendiendo la idea básica... un ejemplo de como queda
una clase documentada
usando doxygen: http://xml.apache.org/xerces-c/apiDocs/classDOMBuilder.html
Bueno... doxygen puede correrse desde la linea de comando al igual que
uno corre el gcc o cualquier otro programa, el mismo lee un archivo de
configuración el cual les especifica que archivos corresponden al
proyecto, que formato de documentación generar, etc...
Gracias a dios también existe una interfaz gráfica: doxywizard que
simplifica bastante la cosa...
Los ejemplos que dí aquí son bastantes escuetos, pero en la pagina:
http://www.stack.nl/~dimitri/doxygen/index.html y más precisamente en el
manual: http://www.stack.nl/~dimitri/doxygen/manual.html sobran los
ejemplos...
y para los más cholulos aquí hay una lista con los proyectos que lo
utilizan:
http://www.stack.nl/~dimitri/doxygen/projects.html
Bueno, espero que les interese.
Saludos,
Nicolás.