Le Clean Code de l’oncle Bob (Robert C. Martin) est ce à quoi devrait tendre tous les logiciels. Le manifeste du Software Craftmanship : je l’ai signé.

Certains outils existent afin d’aider à réaliser ces buts dont NDepend (version 2017.1.1 au moment où j’écris).

NDepend

Depuis mon premier contact aux Microsoft Techdays de 2014 et sa version 5, beaucoup de choses ont évolué.

L’interface est plus clair, le Dashboard plus lisible. Ce qui m’a le plus plu dans cette nouvelle mouture ce sont les nouveautés. Parmi les nouveautés :

  • Estimation de la dette technique
  • Quality Gates
  • Intégration à VS 2017

Rappel des fonctionnalités

Évaluation de la santé de l’application

  • Règles de code et requêtes associées pour détecter les problèmes et vérifier les “best practices”. Il est aussi possible d’écrire ses propres règles d’équipe ou celles des normes de votre client (règles écrites en Linq C# avec intellisense)
  • Importation dans NDepend de la couverture de code par les tests
  • Comparaison de l’évolution du code entre deux compilations

Qualité continue du code

  • [Nouveauté] Estimation de la dette technique avec estimation du temps pour le remboursement
  • [Nouveauté] Quality gates : rassemble plusieurs règles pour donner un aperçu plus concis.
  • [Evolution] Liste des Issues : pas vraiment une nouveauté en soit mais une synthétisation des différents éléments à prendre en compte.

Aide à l’architecture logicielle et au développement

  • Rapport d’intégration continu : un rapport de type HTML peut être généré et mis à disposition pour étude et revue de code.
  • Complexité et diagrammes : matrice des dépendances (permet de voir les dépendances cycliques par exemple)
  • Qualité du code à travers 82 mesures (complexité cyclomatique, Lines de code, pourcentage de commentaires, couplage, profondeur d’héritage, …)

Aide au management de gros projets avec des grosses équipes

  • Monitoring des tendances des mesures
  • Exploration de l’architecture (dépendances cycliques directes ou indirectes, …)
  • Analyse des possibles problèmes de compilation (version d’assembly référencés présente ou non, Nom des assemblies différents ou plusieurs avec le même nom,…)

Travailler facilement avec du code Legacy

  • Détection des dépendances cycliques entre les composants
  • Aide à contrer les effets de bord possibles
  • Intégration à Visual Studio de 2010 à 2017
  • Possibilité d’utiliser l’API de NDepend pour créer son propre analyseur