Значения метрик кода

Повышенная сложность современных приложений программного обеспечения также повышает сложность обеспечения надежности и обслуживания кода. Метрики кода представляют собой набор оценок программного обеспечения, которые дают разработчикам более глубокое представление о разрабатываемом коде. Используя преимущества метрик кода, разработчики могут понять, какие типы и методы следует переработать или более тщательно протестировать. Команды разработчиков могут определить потенциальные риски, понять текущее состояние проекта и отслеживать ход разработки программного обеспечения.

Разработчики могут использовать Visual Studio для создания данных метрик кода, которые измеряют сложность и удобство обслуживания управляемого кода. Данные метрик кода можно создать для всего решения или одного проекта.

Сведения о создании данных метрик кода в Visual Studio см. в статье "Практическое руководство. Создание данных метрик кода".

Измерения программного обеспечения

В следующем списке показаны результаты метрики кода, вычисляемые Visual Studio:

  • Индекс доступности — вычисляет значение индекса от 0 до 100, представляющее относительную простоту поддержания кода. Высокое значение означает лучшую поддержку. Цветные закодированные оценки можно использовать для быстрого выявления проблемных мест в коде. Зеленый рейтинг составляет от 20 до 100 и указывает, что код имеет хорошую поддержку. Желтый рейтинг составляет от 10 до 19 и указывает, что код является умеренным. Красный рейтинг — это рейтинг от 0 до 9 и указывает на низкую поддержку. Дополнительные сведения см. в разделе "Диапазон индексов поддержки" и "Значение".

  • Цикломатическая сложность — измеряет структурную сложность кода. Он создается путем вычисления количества различных путей кода в потоке программы. Программа, которая имеет сложный поток управления, требует больше тестов для достижения хорошего покрытия кода и менее поддерживается. Дополнительные сведения см. в разделе "Цикломатическая сложность".

  • Глубина наследования — указывает количество различных классов, наследуемых друг от друга, вплоть до базового класса. Глубина наследования аналогична связыванию классов, что изменение базового класса может повлиять на любой из унаследованных классов. Чем выше это число, тем глубже наследование и чем выше потенциал для изменений базового класса, что приведет к критическому изменению. Для глубины наследования низкая ценность хороша, и большое значение плохо. Дополнительные сведения см. в разделе "Глубина наследования".

  • Объединение классов — измеряет связь с уникальными классами с помощью параметров, локальных переменных, возвращаемых типов, вызовов методов, универсальных или шаблонных экземпляров, базовых классов, реализаций интерфейса, полей, определенных во внешних типах и оформлении атрибутов. Хороший дизайн программного обеспечения диктует, что типы и методы должны иметь высокую сплоченность и низкую связь. Высокая связь означает дизайн, который трудно использовать и поддерживать из-за его многочисленных взаимозависимостей по другим типам. Дополнительные сведения см. в разделе "Связь классов".

  • Строки исходного кода — указывает точное количество строк исходного кода , присутствующих в исходном файле, включая пустые строки. Эта метрика доступна начиная с Visual Studio 2019 версии 16.4 и Microsoft.CodeAnalysis.Metrics (2.9.5).

  • Строки исполняемого кода — указывает приблизительное количество строк или операций исполняемого кода . Это количество операций в исполняемом коде. Эта метрика доступна начиная с Visual Studio 2019 версии 16.4 и Microsoft.CodeAnalysis.Metrics (2.9.5). Значение обычно близко соответствует предыдущей метрике, строкам кода, которая является метрикой на основе инструкций MSIL, используемой в устаревшем режиме.

Анонимные методы

Анонимный метод — это просто метод , который не имеет имени. Анонимные методы чаще всего используются для передачи блока кода в качестве параметра делегата. Результаты метрик кода для анонимного метода, объявленного в элементе, например методе или методе доступа, связаны с элементом, объявляющим метод. Они не связаны с членом, который вызывает метод.

Созданный код

Некоторые средства программного обеспечения и компиляторы создают код, добавленный в проект, и что разработчик проекта либо не видит, либо не должен изменяться. В основном метрики кода игнорируют созданный код при вычислении значений метрик. Это позволяет значениям метрик отражать то, что разработчик может видеть и изменять.

Код, созданный для Windows Forms, не игнорируется, так как это код, который разработчик может видеть и изменять.