Utilisez-vous NDepend?

6 réponses

J'ai beaucoup utilisé NDepend au cours des dernières années. Fondamentalement, c'est un outil d'analyse de dépendance, et donc cela peut vous aider avec beaucoup de problèmes liés à la dépendance.

une des principales choses pour lesquelles je l'utilise est d'examiner les dépendances entre mes assemblages, types et méthodes. Cela m'aide à garder une vue de savoir si le couplage entre les types de la main, et m'aide aussi à repérer refactoring possibilités.

lors de l'embarquement sur un refactor massif, par exemple extractibles.déplacer des types vers d'autres assemblages, cela vous permet de voir ce qui dépend de ce que vous n'avez pas à faire le vieux "déplacer mes types vers un autre assemblage, puis essayer de compiler et voir ce qui casse"

NDepend a également une matrice visuelle excellente pour visualiser ce genre d'information.

en outre, il a un langage de requête fantastique, CQL, qui vous permet d'écrire des requêtes personnalisées. Cela peut être des choses simples telles que "montrez-moi toutes les méthodes qui appellent cette méthode", aux requêtes à mettez en surbrillance le code mort, les requêtes sur la complexité cytomatique, le couplage, etc., et bien plus encore.

à son tour, il peut être intégré dans un processus de construction, de sorte que vous pouvez avoir des avertissements/Échecs de construction basés sur des requêtes CQL, comme "fail the build si une méthode a plus de 100 lignes de code mais aucun commentaire" (ceci est un exemple - Je ne suggère pas que cette métrique particulière est une bonne chose).

il peut également importer des données de couverture de code et vous donner une représentation visuelle des zones avec peu de couverture de code, en plus de vous permettre d'exécuter des requêtes CQL contre des informations de couverture de code (par exemple les méthodes show me avec moins de 70% de couverture de code)

Vous pouvez également charger votre version actuelle de votre projet, et une version précédente, et d'exécuter des requêtes entre eux, tels que: "montrez-moi tous types qui ont une couverture de code <70% " - cela vous aide à introduire des règles plus strictes sur les bases de codes existantes.

C'est un outil fantastique, et n'est pas trop difficile à apprendre. C'est effrayant au début, juste en raison du volume élevé de détails qu'il vous donne, mais est fortement recommandé.

29
répondu Rob Levine 2010-01-12 15:19:48

je le trouve aussi inestimable pour comprendre la structure des appels de méthodes compliqués. Je peux appeler toutes les méthodes de façon transitoire en utilisant une méthode ou un champ particulier, par exemple, et je peux voir s'il y a des problèmes possibles avec les appels circulaires, ou les dépendances indésirables, ou les chemins qui sont plus alambiqués que nécessaire, etc.

le graphe de dépendances est aussi maintenant interactif, donc je peux enlever des méthodes qui ne m'intéressent pas actuellement, et déplacer d'autres autour pour donner une bonne la visualisation de ce qui se passe.

8
répondu Joel in Gö 2010-03-18 11:34:52

j'ai trouvé utile de visualiser les changements entre les versions des assemblées. Même pour un instantané des changements dans une version donnée...

je pense qu'il brille dans un processus Continu d'Intégration de l'environnement dans laquelle vous pouvez définir des requêtes CQL de mesure métriques de code qui vous intéresse (Complexité Cyclomatique, Méthodes trop Longues, etc.), puis vous pourrez mesurer votre amélioration dans ces domaines au fil du temps.

4
répondu John Weldon 2010-01-12 15:09:13

en fait cet outil est utile si vous avez par exemple une interface qui est utilisée par une autre partie de l'application développée par une personne/vendeur différente. Chaque fois que vous voulez changer l'interface, vous devez savoir qui utilise votre interface pour éviter de casser son code (assembly ne construira pas) Cela s'applique aux projets de plus grande envergure.

4
répondu kosto 2010-01-12 15:16:46

Cet outil est utile lorsque votre application dispose d'un grand nombre d'assemblées. Il m'aide à trouver le code de dépendances et ainsi que les changements entre les versions

2
répondu balalakshmi 2010-03-18 11:37:45

J'utilise aussi NDepend pour comparer deux versions d'un assemblage. NDepend ont cette caractéristique excelente. Cela me donne un avis sur les changements et les progrès du travail dans l'assemblée, les méthodes qui ont été ajoutées, les méthodes retirées et beaucoup plus.

2
répondu Dariusz 2011-02-25 10:09:02