NDepend: получить среднее значение LOC для каждого метода
Допустим, у меня есть определенный метод, установленный в моем решении. Как я могу получить среднее количество строк кода на метод в наборе методов?
Эти цифры обычно отображаются в разделе статистики каждого отчета NDepend (например, Sum, Average, Minimum
и т. д.) но я хочу иметь возможность писать запросы для таких номеров отдельно.
1 ответ
Решение
Запрос CQLinq может выглядеть следующим образом:
let totalLinesSum = JustMyCode.Methods.Where(t => t.IsPublic).Sum(t => t.NbLinesOfCode)
let methodsCount = JustMyCode.Methods.Where(t => t.IsPublic).Count()
let result = (double)totalLinesSum / methodsCount
select (double?)result
... или чуть более уточненный, этот запрос может быть реорганизован следующим образом:
// Let define your methods set the way you need
// It is worth removing abstract method that have no LoC
let methodsSet = JustMyCode.Methods.Where(m => m.IsPublic && !m.IsAbstract)
let totalLoc = methodsSet.Sum(t => t.NbLinesOfCode)
let methodsCount = methodsSet.Count()
let avgLoc = (double)totalLoc / methodsCount
select (double?)avgLoc