On trouve pas mal de logiciels de métriques de code. Ces logiciels permettent, à partir du code source, de calculer de nombreuses abaques qui vont permette de statuer, chiffres à l'appui, sur le bonnes pratiques de programmation.

Tout le monde en connaît déjà, des abaques. Nombre de lignes dans une méthode, nombre d'imbrications de blocs dans une méthode, nombre de membres dans une classe. Dès que l'on code un minimum sérieusement, on en entends parler, et on se rend souvent compte que ce sont quand même des règles de bon aloi. Cela permet d'avoir des choses assez isolées, suffisamment courte individuellement pour être bien compris d'un esprit humain standard.

Prenons un exemple d'outils de métrique de code: le plugin metric pour eclipse, on verra jusqu'ou cela peut aller.

NSM, TLOC, CA, RMD.... Derrière ces sigles se cachent des abaques calculées à partir du code. TLOC : Nombre total de ligne de codes, NSM : Nombre de méthodes statiques, RMD : distance normalisée. Chaque information n'est pas à prendre réellement comme valeur d'évangile, doit être lu comme un symptôme.

Prenons le AC par exemple. Afferent coupling. Il s'agit du nombre de type en dehors de l'unité (traditionnellement le package) qui dépendent de type de l'unitée. un AC important montre une unitée avec de forte responsabilités vis a vis de l'extérieur. Le fait qu'une unitée a une AC importante doit refletée le fait qu'elle est la base de beaucoup de choses. Si ce n'est pas le cas, il y a de forte chances qu'elle soit utilisée à tort et à travers. La STL a un AC important dans un projet par exemple, c'est normal. Si c'est la console de sortie, qui est normalement un objet périphérique (bien qu'important) c'est plus inquiétant. Cela montre qu'un abaque doit toujours être rapporté a ce qu'il mesure indirectement, et que ce soit en cohérence.

A noter un cas particulier : le nombre de ligne de codes. Fondamentalement, on se dit que plus il y a de lignes de code, mieux c'est. C'est vrai ... sur le CV, ça fait sérieux. Dans la pratique, du code simple, plus cours (mais pas incomplet) est plus maintenable, plus efficace. On dit parfois qe la perfection, c'est pas lorsqu'il n'y a rien a rajouter, mais qu'il ne reste plus de superflu.