Recommend Me


Mardi 2 décembre 2008

Documenter avec Ruby

Classé dans : Java, Langage, Projets, Ruby — greg @ 21:00

Je viens de terminer la première partie de ce qui est certainement la plus grosse documentation que j’ai pu écrire dans ma vie. Je n’en dévoilerai pas plus sur le contenu, car il s’agit d’un travail pour mon employeur, sachez simplement qu’il s’agit d’une documentation d’API à destination de développeurs pour les technologies Windows DLL, Framework MacOSX, .Net, Java et SOAP. Ce qui m’intéresse ici est plutôt de vous parler de la méthode employée.

L’ensemble représente pour le moment 6 documents : 4 Quick Start, un document de référence technique (il en reste 3 à écrire) et un document de cas d’utilisations. Le tout représente plus de 450 pages et nous devrions dépasser les 1600 pages quand les trois derniers documents seront rédigés.

L’ensemble a été écrit en XML ce qui présente l’énorme avantage de pouvoir partager des paragraphes, voir des chapitres, entre plusieurs documents. De plus, l’écriture de cette documentation ce faisant à plusieurs, nous utilisons subversion comme repository de sources, impossible — ou tout au moins inutile — avec un document Word ou OOo. Chacun peut ainsi travailler sur une partie précise de la documentation sans perturber les autres. Nous utilisons CruiseControl.rb pour l’intégration continue.

Nous avons un ensemble de feuilles de styles permettant de générer des versions HTML (une page et multi-pages) et du PDF via FOP.

A l’origine nous utilisions ANT pour générer les documents, mais tout cela est en train de migrer vers Rake. Non seulement l’utilisation de FOPJava avec Ruby est très simple mais en plus cela nous permet de migrer tout un ensemble de scripts sous Ruby/Rake. En effet, nous avons plusieurs scripts pour nous aider. L’un par exemple utilise RubyDiff pour rechercher des différences, entre deux versions d’APIs, et génère automatiquement de nouvelles entrées dans la doc. L’utilisation de REXML nous permet de modifier de la documentation automatiquement, ou de générer de nouvelles pages à partir de templates XML, souvent avec l’aide d’Erb. Tout cela est en train d’être réuni dans un Rakefile. Bien entendu chaque action automatisée est journalisée et peut être rejouée, supprimée, remplacée… Ainsi pour la constitution de la trame du document, chacun peut savoir ce qui a été fait. Cela complété avec les possibilités offertes par SVN fait que nous pouvons à tout moment revoir l’ensemble de l’histoire de la fabrication de cette documentation. Bien entendu la conformité de l’ensemble est validée à chaque étape…

• • •

Un commentaire »

  1. Blogring pour postgresql+documentation…

    Relatif entrées de blogue…

    Rétrolien par blogring.org — Samedi 13 décembre 2008 @ 1:12

RSS des commentairesTrackBack URI

Laisser un commentaire

You must be logged in to post a comment.

Powered by: WordPress • Template adapted from the Simple Green' Wench theme - RSS