Метрики дублирования кода - лучшая практика
При рассмотрении показателей дублирования кода в течение длительного периода времени (>10 лет) существуют ли рекомендации / лучшие практики для того, какой уровень дублирования кода является "нормальным" или "рекомендуемым"?
У меня большие трудности с этим вопросом, как будто качество кода было отличным, тогда никто не должен его поддерживать, так кого это волнует? Но, в общих чертах, есть ли ссылки на "нормальные". Скажем за 10 строк порога дублирования.
Является ли, скажем, X%, дублирование необычным или нормальным? Если это нормально, это означает, что есть здоровые прибыльные проекты, которые существуют там с таким уровнем дублирования.
Возможно, ответ будет, если есть исследование, которое включает дублирование кода в качестве одного из показателей успеха / среднего / неудачи? Может быть, люди могут поделиться своим опытом успеха в затратах на обслуживание для уровня дублирования кода?
1 ответ
На мой взгляд, нет общего ответа на это.
Вы должны проверить каждый результат работы инструмента и решить, является ли он ложноположительным или обоснованным (это может быть какой-то стандартный шаблон кодирования или сгенерированные части кода) или содержит проблемный код, вставленный в копию, который должен быть подвергнут рефакторингу и извлечен в собственную функцию / модуль / без разницы.
В случае ложного положительного или предполагаемого кода должен быть специальный инструмент для подавления предупреждения в этом случае или на общей основе по определенному шаблону.
Поэтому в будущих прогонах вы всегда должны получать предупреждения, если обнаружены новые дубликаты (или более ранние нефиксированные истинные положительные значения).
Может быть на ложных срабатываниях рассмотреть вопрос об отправке отчета об ошибке автору (создание наименьшей возможной конфигурации кода, которая все еще выдает это предупреждение).