14 votes

Métriques logicielles spécifiques pour les programmes Clojure

Nous envisageons d'écrire un analyseur statique pour collecter des métriques logicielles pour le code Clojure. Bien entendu, il traitera les éléments évidents comme le nombre de fichiers, de fonctions, de paramètres par fonction, etc. Je me demande s'il existe des mesures spécifiques au code Clojure. Avez-vous des idées ?

13voto

mikera Points 63056

En moyenne, je pense que les mesures logicielles sont une idée douteuse - elles vous détournent généralement de la question vraiment importante, à savoir "quelle valeur apportons-nous au client ?".

Cela dit, je reconnais qu'ils peuvent être un mal nécessaire dans certains contextes et qu'ils peuvent occasionnellement vous donner des indications utiles sur votre base de code.

En voici donc quelques-unes qui pourraient être spécifiques à Clojure.

  • Nombre de définitions de haut niveau (peut-être exprimé en tant que rapport au nombre total de symboles ?)
  • Couplage Java : % de symboles liés à l'interopérabilité Java (new, ClassName., .someMethod etc.) - idéalement, le couplage devrait être limité aux modules spécifiques responsables de l'interopérabilité Java, c'est-à-dire qu'il devrait être très faible partout sauf dans les bibliothèques qui gèrent l'interopérabilité.
  • Niveau d'imbrication maximal moyen des définitions de fonctions (je suppose que 5 environ est bon, 10+ mauvais ??)
  • Densité macro : % de formulaires qui nécessitent une macro-expansion.
  • % de fonctions avec docstrings
  • % de symboles ou de paramètres de fonction définis avec des indications de type
  • Taille moyenne des fonctions anonymes (celles-ci devraient probablement être petites !)
  • % de fonctions de clojure.core utilisées (donne une idée de la "gamme de vocabulaire" et de la sophistication du code)
  • (Merci nickik !) nombre de ref-types créés (vars dynamiques, atom, ref et agent) - essentiel si vous voulez garder un contrôle précis de votre état mutable !

p.s. si vous arrivez à faire fonctionner ce système, il serait vraiment intéressant de voir la variation des résultats à travers les différents projets clojure open source !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X