NDepend comte, moyenne, etc .. rapports ... agrégats. Possible? contournements de travail propre?

StackOverflow https://stackoverflow.com/questions/3833525

Question

Nous avons une énorme base de code, où les méthodes avec trop de variables locales renvoie seulement 226 méthodes. Je ne veux pas que ce grand être de table déversée dans la sortie XML pour encombrer, et je voudrais le top 10 si possible, mais ce que je veux vraiment est le compte afin que nous puissions faire des tendances et des résumés. Est-il un moyen non-aki propre / efficace / évolutive pour le faire?

J'imagine que je pouvais utiliser une tâche exécutable, au lieu de la tâche NDepend (de sorte que la fusion est pas automatique) et l'encombrement ne se fusionne pas. Actionnez ensuite manuellement ces fichiers pour obtenir un résumé, mais je voudrais savoir s'il y a un chemin plus court?

Était-ce utile?

La solution

Qu'en est-il définissant une ligne de base pour seulement tenir compte des nouveaux défauts ?

  

ce que je veux vraiment est le compte afin que nous puissions faire des résumés tendances et exécutifs

Trending peut être facilement atteint avec les requêtes de code et des règles plus LINQ (CQLinq) comme: Évitez de faire des méthodes complexes encore plus complexes (Source CC)

// <Name>Avoid making complex methods even more complex (Source CC)</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from m in JustMyCode.Methods where
 !m.IsAbstract &&
  m.IsPresentInBothBuilds() &&
  m.CodeWasChanged()

let oldCC = m.OlderVersion().CyclomaticComplexity
where oldCC > 6 && m.CyclomaticComplexity > oldCC 

select new { m,
    oldCC ,
    newCC = m.CyclomaticComplexity ,
    oldLoc = m.OlderVersion().NbLinesOfCode,
    newLoc = m.NbLinesOfCode,
}

ou éviter de transformer un type immuable en un mutable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top