Отслеживание тенденций в метриках кода с помощью NDepend

У меня есть версия NDepend для серверов сборки, и я автоматизировал создание отчетов NDepend. Итак, каждую ночь сборка делает свое дело и генерируются отчеты/XML NDepend. Теперь я хочу отслеживать некоторые показатели как функцию времени.

Так, например, было бы неплохо иметь график определенного типа или пространства имен, скажем, афферентной связи, на оси y со временем на оси x. Я знаю, что могу сравнить две сборки NDepend и иметь различия в коде и метриках, но я хочу сравнить одну и ту же единственную метрику или метрики в N сборках, чтобы увидеть текущие тенденции.

Я как бы предполагаю, что в настоящее время нет инструмента, который делает это, и что мне придется свернуть свой собственный, но если он есть, я бы хотел услышать о нем, прежде чем тратить время. Итак, поддерживает ли NDepend что-то подобное или есть какая-то уже существующая утилита, которую я мог бы использовать?

Я также открыт для предложений о других технологиях, помимо NDepend, которые могли бы достичь этого, хотя я сильно предпочитаю NDepend, поскольку уже инвестировал в него и знаком с тем, как он работает.

Заранее спасибо.


person Erik Dietrich    schedule 10.02.2012    source источник


Ответы (1)


С помощью NDepend вы можете написать Code Query over LINQ (CQLinq), чтобы соответствовать эволюции по любым метрикам кода. Например, вы можете начать с запроса:

from t in JustMyCode.Types
where t.IsPresentInBothBuilds() &&
      t.CodeWasChanged()
let tOld = t.OlderVersion()

let newLoC = t.NbLinesOfCode  
let oldLoC = tOld.NbLinesOfCode
let newCC = t.CyclomaticComplexity
let oldCC = tOld.CyclomaticComplexity
let newCov = t.PercentageCoverage
let oldCov = tOld.PercentageCoverage
where newLoC > oldLoC || newCC > oldCC || newCov < oldCov
select new { t, newLoC, oldLoC, newCC, oldCC, newCov, oldCov }

...и получить мгновенный результат в Visual Studio. Такое правило интегрируется в ваш процесс сборки CI TFS, а также может отображаться в отчет HTML+javascript.

Соответствие эволюции метрики кода

Предусмотрено несколько правил кода по умолчанию для ограничения трендов метрик кода:

person Patrick from NDepend team    schedule 12.02.2012
comment
Спасибо за ответ. Что я, вероятно, сделаю, так это напишу свой собственный синтаксический анализатор и отобразлю его в виде отдельных сборок, чтобы я мог заменить что-то, что использует API, когда оно выйдет. - person Erik Dietrich; 12.02.2012