NDepend Count, Average и т. Д. Отчеты ... агрегаты.Возможный?чистая работа вокруг? - PullRequest
3 голосов
/ 30 сентября 2010

У нас огромная база кода, где методы, содержащие слишком много локальных переменных, возвращают 226 методов. Я не хочу, чтобы эта огромная таблица была выгружена в вывод xml, чтобы загромождать ее, и я хотел бы, чтобы это было возможно, для первой десятки, но я действительно хочу подсчитать, чтобы мы могли делать тренды и сводные резюме. Есть ли чистый / эффективный / масштабируемый нехакерский способ сделать это?

Я полагаю, что мог бы использовать исполняемую задачу вместо задачи ndepend (чтобы слияние не было автоматическим), и беспорядок не слился. Затем вручную обработайте эти файлы, чтобы получить сводку, но я хотел бы знать, если есть более короткий путь?

1 Ответ

1 голос
/ 30 сентября 2010

Как насчет , определяющего базовую линию для учета только новых недостатков ?

Что мне действительно нужно, так это количество, чтобы мы могли делать тренды и сводные резюме

Тенденции могут быть легко достигнуты с помощью запросов кода и правил через LINQ (CQLinq), таких как: Избегайте усложнения сложных методов (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,
}

или Избегайте преобразования неизменяемого типа в изменчивый .

...