dimanche 26 février 2012

Sortie de Doxygen 1.8.0

Doxygen

La version 1.8.0 de Doxygen est sortie le 25 février 2012. Cet outil libre développé par Dimitri van Heesh permet de générer la documentation technique à partir du code source, et ce pour les langages suivants: C++, C, Java, Objective-C, Python, IDL (pour Corba et Microsoft), Fortran, VHDL, PHP, C# ainsi que D jusqu'à un certain point.

Doxygen permet de générer un navigateur de documentation en ligne (en HTML) et/ou des manuels de référence à consulter hors ligne (en LaTeX, donc avec une qualité remarquable) à partir d'un ensemble de fichiers de code source documenté. Sont également gérés les formats de sortie RTF (MS-Word), PostScript, PDF avec hyperliens, HTML compressé et man pages Unix. La documentation est extraite directement depuis le code source, ce qui facilite de maintenir le code et la documentation synchronisés.

Il est possible de configurer Doxygen pour extraire la structure de code de fichiers sources non documentés. Ceci est très utile pour vous y retrouver rapidement dans un grand volume de code source. Vous pouvez également visualiser les relations entre les différents éléments grâce des graphiques de dépendances d'inclusion, des diagrammes d'héritage et des diagrammes de collaboration qui sont tous générés automatiquement.

Enfin, il est également possible d'utiliser Doxygen pour créer une documentation classique (comme Dimitri van Heesh l'a fait pour la documentation de Doxygen).

Doxygen fonctionne sur la plupart des Unix (dont Linux et Mac OS X sur lesquels il est développé) et des exécutables pour Windows sont également disponibles. Doxygen est sous licence GNU General Public License. En revanche, les documents produit par Doxygen sont considérés comme travail dérivé de celui effectué pour produire les fichiers en entrée. Ils ne sont donc pas affectés par la license GNU GPL.

Enfin, il existe des plugins pour Maven, Jenkins et Sonar:

Sur le site Doxygen, vous pourrez voir le manuel ou télécharger la dernière version.

Lire la suite...

mercredi 22 février 2012

Hamcrest, tutoriel pour Java

Java

Hamcrest est une bibliothèque d'objets de correspondance ('matchers' ou contraintes ou encore prédicats) permettant de définir des règles de 'correspondance' de façon déclarative, utilisables dans d'autres frameworks. Typiquement, on l'utilisera avec des frameworks de test, des bibliothèques d'objets bouchons (mock objects) et des règles de validation d'interface utilisateur.Par exemple, au lieu d'écrire:

   assertEquals("bleu", couleur);

On écrira:

   assertThat(couleur,is("bleu"));

On note ici le gain immédiat de lisibilité (surtout en anglais)...

Hamcrest a été implémenté pour Java, PHP mais aussi C++, Objective-C, Python et Erlang. Naturellement, avec Java, on pourra gérer cette dépendance via Maven.

Une version d'Hamcrest est fournie avec JUnit. Cependant, elle date un peu et les versions plus récentes d'Hamcrest offrent un tas de nouvelles fonctionnalités, en particuliers pour travailler avec les collections. Vous pouvez utiliser la dernière version d'Hamcrest en utilisant la dépendance junit-dep à la place de junit, comme suit:

  <dependency>
      <groupId>junit</groupId>
      <artifactId>junit-dep</artifactId>
      <version>4.10</version>
      <scope>test</scope>
      <exclusions>
         <exclusion>
              <groupId>org.hamcrest</groupId>
              <artifactId>hamcrest-core</artifactId>
          </exclusion>
      </exclusions>
  </dependency>
  <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-library</artifactId>
      <version>1.3.RC2</version>
  </dependency>

junit-dep est exactement la même bibliothèque que junit, exception faite que ses dépendances sont explicitement déclarées et non incluse dans le bundle.....

Notez enfin que Hamcrest n'est pas une bibliothèque de test comme JUnit ou TestNG, mais bien une bibliothèque d'objets de correspondance destinés à rendre les tests implémentés avec les bibliothèques précédentes beaucoup plus lisibles.

Ce qui suit est la traduction du tutoriel Java que l'on peut lire sur le wiki du site de Hamcrest. On pourra également lire ce billet de John Smart.

Lire la suite...