Conte NDepend, media, ecc .. segnalazione ... aggregati. Possibile? arounds di lavoro pulito?
-
26-09-2019 - |
Domanda
Abbiamo una base di codice enorme, in cui i metodi con troppe variabili locali ritorna da solo 226 metodi. Non voglio che questo enorme essere scaricato nel tavolo l'output XML di ingombrare in su, e mi piacerebbe la top 10, se possibile, ma quello che voglio veramente è il conteggio in modo che possiamo fare di trend e le sintesi. C'è un modo pulito / efficiente / scalabile non hacky per fare questo?
immagino che potrei usare un compito eseguibile, al posto del compito NDepend (in modo che l'unione non è automatico) e il disordine non viene fusa. Poi azionare manualmente su quei file per ottenere una sintesi, ma mi piacerebbe sapere se c'è un percorso più breve?
Soluzione
Che dire di la definizione di una linea di base per solo tener conto di nuovi difetti ?
quello che voglio veramente è il conteggio in modo che possiamo fare trend e le sintesi
di tendenza può essere facilmente raggiunto con le query di codice e le regole oltre LINQ (CQLinq) come: Evitare di fare metodi complessi ancora più complesso (Fonte 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,
}
Evitare di trasformare un tipo immutabile, in un uno mutabile .