Новые правила "Одинаковые условия в последовательности вида Если (....) ИначеЕсли (....) ИначеЕсли (....)" и "Одинаковый код во взаимоисключаемых ветках ветвления кода"

sonar-bsl-plugin

#41

Такие места в коде лучше все-таки видеть и знать про них. Потом уже можно принять решение и сказать, что в этом месте “так надо”. Сонар - он про поиск таких мест и доставку их до мозга архитектора.


#42

Я обычно не так говорю. Есть основной сценарий использования:

  • есть объектная модель исходного кода - авторы плагина разрабатывают логику анализа проблемных мест: это полностью их право, они читают стандарты и облекают стандарты в правила.
  • есть правило - архитектор может его отключить, может включить: это полностью его право.
  • есть замечание - там где правило сработало, ведущий разработчик может его учесть как неактуальное, а может исправить: это полностью его право.
  • есть технический долг на проекте - менеджер его видит, может согласовывать релиз, а может и нет: это полностью его право.

Холивар здесь исключен - каждый нажимает те кнопки которые считает верными. Сонар он про это - про исключение священных войн как писать правильно, с должным уровнем прозрачности.


#43

А еще веселые условия

довольно свежая УНФ :frowning:


#44

Этот модуль вообще очень копипастный :frowning:

В нем супер-условия на десятки строк, что видно на скриншоте.

Например, 3 условия повторяются, между крайними из них более 100 строк


#45

из множественных elseif, что встречались, большинство можно было в итоге заменить на Соответствие.Получить() с подготовленным соответствием в отдельной функции


#46

Ага, хороший вариант решения.


#47

Прогнал несколько типовых новыми правилами, с дублями кода (одинаковые условия и одинаковый код внутри взаимоисключающих условий) много срабатываний :frowning:

Любят 1С-ники (и не только сотрудники вендора) копипаст :frowning: