Пример erp 2.x при проверке качества (Дублирования)

Продолжить обсуждение из Базовые вещи - SonarQube:

Итак мы внезапно обнаруживаем что в ERP 2.1 11% дублированного кода

Это не плохо и не хорошо

просто цифра - 11%, идем дальше - как все помнят, нужно непрерывно улучшать качество

переходим на расшифровку

мы видим что - существуют:

  • 23 тысячи участков с дублями
  • в этих 23 тысячах участках участвует полмиллиона строк
  • всего эти участки находятся в 2700 файлах

масштаб трагедии большой, но что делать

Вспоминаем принцип “Паррето”

Берем самый задублированный участок в виде дерева - чтобы понять объект метаданных

Обновление информационной базы трогать типа не будем (хотя 600 участков копипаста фееричны). Обоснуем это тем, что якобы обновление информационной базы деляется не часто - поэтому пофигу.

А вот Обновление данных контрагентов посмотрим - оно частое.

Рефакторим

тыкаем в модуль и находим дублирующий участок кто виноват и с кем проходит дубль

видим что программисты молодцы - перебор таблицы значений тупо скпопипастили

Чем это опасно ?

Я думаю вы и сами понимаете, что при необходимости добавить новое поведение в заполнение таблицы, придется править 2 места… А так как в модуле 20 тысяч строк - кто-то обязательно накосячит. И потеряет время и деньги.

ну и кстати - @sergey.novikov ты спрашивал про code-coverage - его можно увидеть на любом модуле и на всей конфигурации

и если покрытие 100% - тогда можно смело рефакторить плохой код

3 Симпатий

@nixel2007

больше всего меня радует показатель “brain-overload” - более 700. То есть это модуль - математически гарантирует “вынос мозга”

Весёлая метрика про мозги )

Леш, а не можешь дать read-only доступ к этому чуду? Может вообще сделаешь демо для потенциальных заказчиков на основе этого ERP (правда не знаю что там с лицензионностью со стороны 1С)?

Для потенциальный я в онлайне буду проводить демонстрацию. ERP сейчас проверяется для @pumbaE - у него единственного есть легальная :wink:

Даже не так…

Смотри - демо доступ будет (собственно он и сейчас есть, но до конца не настроен), но к 3-ем открытым проектам. Исходники которых открыты.

А вот для конфигураций имеющих лицензированное от 1С жёстко накрыта безопасностью и всякими NDA - поэтому я не могу. Именно поэтому кстати и HTTPS всякий и VPN.

Средняя цикломатка в 8,9 как бы намекает, что код там крайне макоронный