Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вопрос. Индекс удобства обслуживания был сброшен, чтобы лежать в диапазоне от 0 до 100. Как был выполнен этот сброс и почему?
Метрика первоначально вычислялась следующим образом: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)
Использование этой формулы означает, что она варьируется от 171 до несвязанного отрицательного числа. Когда код стремился к 0, было явно трудно поддерживать код, а разница между кодом, равным 0, и некоторыми отрицательными значениями была бесполезна. В результате уменьшения полезности отрицательных чисел и желания сохранить метрику как можно более четко, мы решили рассматривать все 0 или меньше индексов как 0, а затем перебазировать диапазон 171 или меньше, чтобы быть от 0 до 100. По этой причине используется формула:
Maintainability Index = MAX(0,(171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code))*100 / 171)
Кроме того, мы решили быть консервативным с порогами. Желание было в том, что если индекс показал красный, то мы будем говорить с высокой степенью уверенности, что возникла проблема с кодом.
Для пороговых значений мы решили разбить этот диапазон 0-100 на 80-20, чтобы уровень шума оставался низким, и отмечаем только подозрительные строки кода. Мы использовали следующие пороговые значения:
Значение индекса | Цвет | Значение |
---|---|---|
0-9 | Красный | Низкая доступность кода |
10-19 | Жёлтый | Умеренный уровень обслуживания кода |
20-100 | Зеленый | Хорошая поддерживаемость кода |