C'est une bonne occasion de présenter très brièvement ce qui devrait faire partie de toute boîte à outils d'un bon programmeur.
Doxygen est donc un logiciel permettant de documenter facilement son code par un système de commentaire-tags. Les utilisateurs de javadoc, par exemple, se retrouveront facilement dans la manière de procéder, cependant on dénombre près de 170 tags par défaut pour doxygen auquel s'ajoute un système permettant d'ajouter ses propres tags afin de répondre aux besoins du projet.
En plus de la documentation des sources (prototype des fonctions, des classes), on peut obtenir les informations suivantes :
- Liste des fichiers inclus;
- Documentation des structures de données;
- Hiérarchie des classes;
- Différents types de graphiques : diagrammes de classe, de collaboration, d'appels, d'inclusion, etc;
- Un index de tous les identifiants;
- Des fichiers sources annotés.
La documentation produite est généralement au format HTML à cause de sa facilité d'emploi, cependant il est possible d'obtenir des fichiers LATEX, PostScript, PDF, XML, man et même Word et CHM.
Doxygen a été écrit en grande partie par Dimitri van Heesch qui trouvait, à l'époque, la documentation générée pour Qt très jolie et doc++ trop limité pour réaliser un travail similaire.
Aujourd'hui doxygen supporte C/C++, Java, (Corba et Microsoft) Java, Python, IDL, C#, Objective-C et en partie D et PHP.
Doxygen est distribué sous licence GPL, un binaire est disponible pour Windows 95 à XP et pour Mac OS X mais toute bonne distribution doit le mettre à disposition (nécessite la libqt). La version 1.5.0 apporte surtout beaucoup de correctifs et assez peu de nouvelles fonctionnalités (voir le changelog complet pour d'avantage d'informations).
On notera toutefois (traduction libre) :
- Ajout d'exemples pour montrer comment configurer et faire tourner doxygen pour une application et utiliser les informations collectées sans générer la sortie;
- id 322467: Les sections produites par \note, \warning, \remarks etc, ont maintenant un label de classe dans le HTML généré (tag ) aussi vous pouvez leur donner un style distinct en utilisant des feuilles de styles (HTML_STYLESHEET);
- Ajout de fichiers de projet pour construire doxygen sous Visual Studio 2005;
- Mises à jour des traductions pour le Tchèque, le Danois, l'Allemand et le Catalan;
- Ajouts de traductions pour l'Arabe (merci à Moaz Reyad);
- Ajouts de traductions pour le Perse (merci à Ali Nadalizadeh).
Aller plus loin
- Le site de doxygen (29 clics)
- Le changelog (3 clics)
- La page de téléchargement (5 clics)
# UTF-8 ?
Posté par Mildred (site web personnel) . Évalué à 6.
Alors, c'est possible de configurer doxygen pour qu'il gère l'utf-8 ? D'après ce que j'avais vu sur google, cela ne semblait pas être le cas.
[^] # Re: UTF-8 ?
Posté par Olivier Serve (site web personnel) . Évalué à 2.
[^] # Re: UTF-8 ?
Posté par Frédéric-Emmanuel Picca . Évalué à 1.
[^] # Re: UTF-8 ?
Posté par feth . Évalué à 2.
É -> É
é -> é
è -> è
ë -> ë
ä -> ä
© -> ©
[^] # Re: UTF-8 ?
Posté par Mildred (site web personnel) . Évalué à 2.
[^] # Re: UTF-8 ?
Posté par Matthieu Moy (site web personnel) . Évalué à 1.
;-)
[^] # Re: UTF-8 ?
Posté par Ludovic Rio . Évalué à 4.
[^] # Re: UTF-8 ?
Posté par feth . Évalué à 5.
[^] # Re: UTF-8 ?
Posté par gS . Évalué à 4.
[^] # Re: UTF-8 ?
Posté par gpe . Évalué à 3.
Ça serait donc effectivement sympa que l'utf8 soit supporté.
[^] # Re: UTF-8 ?
Posté par Mildred (site web personnel) . Évalué à 2.
[^] # Re: UTF-8 ?
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
Enfin, j'ai un copain qui bossait sur du code commenté en polonais, mais il a appris plus tard que les commentaires importants étaient ceux en anglais. Le polonais, c'était juste pour les trucs genre « penser à acheter des poireaux en rentrant ce soir » ;-).
# Question à deux balles
Posté par Fabimaru (site web personnel) . Évalué à 7.
Aidez-moi, dites moi que je ne suis pas fou!
[^] # Re: Question à deux balles
Posté par Yann Hodique (site web personnel) . Évalué à 8.
voir la FAQ, question (et réponse) 17, tu n'es donc pas fou :-)
# Mieux que javadoc ?
Posté par Nicolas Dumoulin (site web personnel) . Évalué à 4.
Non ce n'est pas un troll, mais une question sérieuse :-)
Étant données les fonctionnalités listées, je me dis de plus en plus que doxygen vaut le coup par rapport à javadoc. Qu'en est-il en pratique ?
Des gens qui code en java utilisent-ils doxygen ? En êtes vous contents ?
Existe-t-il des générateurs de commentaires pour doxygen ? Comme dans eclipse, où on peut générer des gabarits de commentaires. Où encore umbrello qui génère du code java avec les commentaires tapés dans les modèles.
Bon après, c'est sûr que je pourrai essayer par moi même pour me faire une idée ;-)
Merci
[^] # Re: Mieux que javadoc ?
Posté par tuiu pol . Évalué à 3.
[^] # Re: Mieux que javadoc ?
Posté par Gael Tessier . Évalué à 1.
Pour répondre à ta question, j'ai utilisé Javadoc quand j'ai codé en Java, et Doxygen dans les autres cas, avec le format de commentaires décrit plus haut.
--
http://www.tessier-net.org
# DoxyS
Posté par thom_ra . Évalué à 4.
http://www.doxys.dk/
Le rendu HTML est vraiment différent :
http://www.doxys.dk/doxys_homepage/Screenshots0_page_descrip(...)
Et surtout on à une fonction de recherche (incrémentale d'ailleurs, c'est pas mal !) qui ne nécessite pas de serveur Apache (pour le php), contrairement à Doxygen.
Par contre, ça évoluent beaucoup moins vite que Doxygen, selon les tags utilisés dans Doxygen il n'y a pas d'équivelent avec DoxyS, et de mémoire, ça ne gère "que" le C, C++...
Nous on a testé les 2, et finalement, on utilise les 2... Les fichiers de config pour générer les 2 docs sont relativement similaires.
# Doxygen en python
Posté par Philippe F (site web personnel) . Évalué à 2.
J'ai pas l'impression que la generation python soit testee correctement.
[^] # Re: Doxygen en python
Posté par mizu . Évalué à 2.
[^] # Re: Doxygen en python
Posté par Philippe F (site web personnel) . Évalué à 1.
DOxygen est quand meme celui qui a le plus de potentiel, etant donne la qualite de la documentation qu'il genere (en C++ et en java). Vivement que quelqu'un reporte le flambeau du parser python.
[^] # Re: Doxygen en python
Posté par rhizome . Évalué à 3.
[^] # Re: Doxygen en python
Posté par mizu . Évalué à 1.
# Use sysprof Luke...
Posté par tgl . Évalué à 7.
Il y a qlqs temps, j'avais été surpris de la lenteur pour compiler la doc d'un projet C++ de taille moyenne auquel je jetais un oeil. Ça prennais ~30 minutes. En fait, un petit coup de sysprof¹ m'a montré que :
- ~85% de ce temps était passé dans le code de génération des graphiques, c'est à dire pas dans Doxygen lui même, mais dans Graphiz (le machin qui fourni entre autres la commande "dot") ;
- sur ce temps là, ~90% était passé dans des fonctions d'initialisation de Fontconfig.
La bonne nouvelle, c'est qu'un update de Fontconfig de la 2.3.2 à la récente 2.4.1 a réduit ce temps pour le rendre ~négligeable. Et la même tâche Doxygen me prends maintenant moins de 5 minutes. Voilà, c'est tout, elle est pas belle la vie ?
Bon, évidemment, si votre distrib package Graphiz pour qu'il n'utilise pas Fontconfig, ce qui est aussi possible mais donne des polices souvent moins jolies, vous n'aurez pas rencontré ce problème.
¹ http://www.daimi.au.dk/~sandmann/sysprof/
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.