SonarQube. А надо ли?

10.03.25

Разработка - Тестирование QA

Внедрили мы, с моими девчонками, в тестовом режиме в конце прошлого года в свой рабочий процесс Сонар. Всем очень понравилось - оповещения об ошибках приходят, мы эти ошибки правим. Можно гордо на годовом собрании о достижениях отчитываться. А теперь, наконец-то, пришло время оценить результаты.

Давайте "скормим"  на проверку Сонару "коричневый пахучий" код?

 

 

Замечаний даже прилично выдал, целых 5:

 

 

Отработаем все замечания - результат:

 

 

Код, конечно, гораздо качественнее стал...

Вот сижу теперь и размышляю: а обеспечила ли я, как технический архитектор, настоящее качество кода, внедрив этот инструмент? Или просто завернула это самое "оно" в "красивый блестящий фантик"?

P.S. Эта заметка - "шутка юмора", призывающая немного поубавить градус "пафоса и пиетета" вокруг "модных красивых игрушек". И задуматься о том, где у нас в коде на самом деле, постоянно, по всей стране, на протяжении многих лет, "сбоит" и почему.

SonarQube - отличный бесплатный инструмент. Обязательно внедряйте.

И будут у Вас комментарии в коде красивые-красивые! С пробельчиками)))

 

P.S.2 Неужели "экстерьер" и в коде важнее "внутреннего содержания"?

Архитекторы развлекаются Архитектурные заметки SonarQube разработчикам/архитекторам на заметку долой стереотипы пофилосовствуем?

См. также

Тестирование QA DevOps и автоматизация разработки Программист Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.166.17.

2160 руб.

20.01.2022    8627    30    0    

15

Тестирование QA DevOps и автоматизация разработки Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.168.

2400 руб.

04.07.2022    9123    40    1    

31

DevOps и автоматизация разработки Тестирование QA Программист Пользователь Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.108.

3000 руб.

05.08.2024    2062    17    1    

11

Тестирование QA Программист Платформа 1С v8.3 1С:Документооборот Россия Абонемент ($m)

Обработка подготавливает тестовую базу для удобного тестирования и разработки.

1 стартмани

04.03.2025    250    0    FeDBuka    3    

0

Тестирование QA Программист Платформа 1С v8.3 Бесплатно (free)

Чтобы обеспечить высокое качество тиражной конфигурации 1С, ручного тестирования недостаточно – нужно учесть множество комбинаций функциональных опций, группы доступа и влияние подсистем друг на друга. Расскажем о промышленном тестировании флагманского продукта 1С:ERP и его дочерних конфигураций.

31.01.2025    8338    Pr-Mex    61    

41

Тестирование QA Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Наверное, нет пользователя 1С, который не встречал такое сообщение, прерывающее работу системы. Такие ошибки - следствие недоработки программиста, который не смог предусмотреть возможное возникновение ошибочной ситуации при обращении к свойствам объекта. А как это сделать? Попытка ... Исключение - да, способ рабочий, но некрасивый и технически неэффективный. Рассмотрим, какие еще есть способы проверки существования свойства.

21.01.2025    2092    Sergey1CSpb    7    

4

Тестирование QA Системный администратор Программист Бесплатно (free)

Нагрузочное тестирование — трудоемкий, но обязательный этап крупного IT-проекта, который позволяет выявить дефекты, проверить производительность, стабильность и отказоустойчивость решения. Стоимость тестирования связана с количеством пользователей и сценариев: чем их больше, тем дороже. При этом часто нужны многократные проверки, а вычислительных ресурсов на это может не хватить. Как тогда провести испытания высоконагруженной системы и уложиться в бюджет? Рассказываем, как с помощью нового подхода смогли сэкономить и минимизировать ручные операции при испытании производительности систем на платформе 1С.

16.01.2025    964    1C_Community    9    

4

Тестирование QA Программист Бесплатно (free)

Один раз создав сценарии автоматического тестирования, можно решить несколько задач – получить видеоинструкции для пользователей, организовать нагрузочное тестирование, настроить ролевую модель и реализовать автоматическую проверку доработок конфигурации. Расскажем об опыте применения Vanessa Automation для сокращения затрат на обучение персонала и контроля стабильности критических бизнес-процессов на проекте.

28.11.2024    3250    user1999010    3    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ImHunter 333 10.03.25 14:11 Сейчас в теме
Конечно, сонар качество не обеспечивает.
Но писать "оно" с ним сложнее. На непонятную переменную сругается. Большую вложенность не даст. Потребует комменты. И т.д.
Да и дурацкие ошибки тоже ловит ведь. Типа отсутствия Возврата.
2. SerVer1C 876 10.03.25 14:39 Сейчас в теме
О чём здесь?
ixijixi; quazare; wtlz; +3 Ответить
3. ImHunter 333 10.03.25 14:44 Сейчас в теме
Про пробельчики и канонические написания - дааа, про это очень любят повозгорать.
Но! Если привык уже к пробельчикам и каноническому написанию, то беспробельчики и "или" будут цеплять взгляд.
А ведь чтение/написание кода живут примерно в пропорции 80/20. А может и 95/5.
Т.е., если не отвлекаешься на ненорматив оформления, то меньше напрягаешься.
msergeev79; +1 Ответить
4. aximo 2172 10.03.25 14:56 Сейчас в теме
кодеры с 20-ти летним стажем никаких "сонаров" на инспекцию кода не подпустят) не потому, что эти примочки "плохие", а потому - что после 20-ти лет стажа - сложно встретить задачу, с которой ты еще не сталкивался) особенно во франче)))

думаю, что через пару-тройку лет, эти примочки сойдут как пена, и все о них подзабудут, но обязательно появятся другие
5. alex_sayan 57 10.03.25 15:16 Сейчас в теме
(4) решить задачу можно и говнокодом
6. aximo 2172 10.03.25 15:48 Сейчас в теме
(5) мы сами уже решаем где говнокод, а где - нет. и сами назначаем говнокодеров
10. alex_sayan 57 10.03.25 18:06 Сейчас в теме
(6) вот как раз говнокод или нет решать последователям, кому достанутся ваши доработки. Им (не)мучиться с вашим кодом. А собственный код автору всегда понятен
7. pbelousov 46 10.03.25 16:43 Сейчас в теме
Всем привет!
мои 5 копеек:
в разработке почти 30 лет.
последние пару лет сижу под сонаром + всё-всё.
сонар постоянно совершенствуется и ужесточается.

когда внедряли, понятно что было "но" и "фи" со всех сторон,
но по факту - всё это догадки, предположения...
не поймёшь ведь, как реально будет, пока не попробуешь.

я решил: закрою ВСЕ ошибки. по честному, а не формально.

в итоге: много букв.
кратко:

1. Есть очень полезные проверки.

2. Есть вредные проверки. когда вреда заметно больше пользы,
например, код распадается на атомы, теряет читабельность, стиль,
зато - кошерный по мнению сонара.

3. после очевидных исправлений, код может упасть из за неочевидных новых ошибок.
обязательно автоматизированное тестирование после сонара.

4. есть косяки. когда исправляешь как он хочет, но он всёравно тупит, непонимает
пример: в запросах ЕстьNull и Есть Null

5. Когнитивная и цикломатическая сложность:
Ад для разработчика, так как в нашем сознании бывают и посложней конструкции, чем "2+2" и "Мама мыла раму".
но со стороны тимлидов и ревьюеров почему-то полностью противоположное мнение.
так что когда слышу от них "я не смотрю на код функции длиннее 100 строчек" - мне смешно.
на самом деле - проблема здесь только в вас самих. но как вам это объяснить....

показывал пример кода в 14 строчек, простой, понятный ребенку, но по сонару взлетела сложность выше предельной.
- просто игнор, как-будто не сказал ничего.

6. Стиль кода (пробелы после запятой, названия переменных и прочее)
- пришлось сменить стиль. привык. смысла не вижу, но доказать ревьюерам что-то просто невозможно.


вот где реально нужно: когда в коде лютый хардкодинг и костылинг!

у нас такого нет, но в прошлой жизни видел жуткий пример,
когда в коде 15 раз пришлось сносить костыль на ставку ндс, и вроде заработало,
но в итоге нет, т.к. оказалось что не та процедура, ну просто-так вызывалась,
за ней другая отрабатывала, по другому. и т.д.

имхо, минимальную планку держать надо,
где-то поднимать, но вот доводить до абсурда явно не стоит.
9. gybson 10.03.25 17:39 Сейчас в теме
(7) На самом деле проблема здесь в том, что код должен легко и просто жить без своего создателя. Он должен легко версионироваться, поддерживаться, пониматься и прочее. Какой-то код объективно нельзя декомпозировать, но это надо уметь объяснить, а не ржать. Очевидно, что код внутри одной процедуры очень сильно связан, что редко считается плюсом и т.д. и т.п. Мне вот давно уже не смешно, а страшно.

P.S. В разработке тоже почти 30 лет
11. alex_sayan 57 10.03.25 18:08 Сейчас в теме
(7)
например, код распадается на атомы, теряет читабельность, стиль,
зато - кошерный по мнению сонара

Код должен не "распадаться на атомы", а декомпозироваться. Если декомпозиция выполнена правильно и имена методов выбраны грамотно, то читабельность только улучшается
12. alex_sayan 57 10.03.25 18:22 Сейчас в теме
(7)
Когнитивная и цикломатическая сложность:
Ад для разработчика, так как в нашем сознании бывают и посложней конструкции, чем "2+2" и "Мама мыла раму".

Дык, суть борьбы с когнитивной и цикломатической сложностью как раз в том, чтобы не вываливать разработчику на голову сразу всю "посложней конструкцию", а постепенно вводить в курс дела. Дальше пусть сам решит, куда ему идти.
Не надо превращать кодовую базу в книгу без оглавления, где чтобы добраться до нужного места надо прочесть сотню страниц. Книга делится на тематические части, части на главы, главы на темы, те на подтемы. Когда пользуешься оглавлением, быстро добираешься до нужной темы. А если оглавление выдрано, придётся тратить время на беглое прочтение книги. И сразу не известно, где интересующий тебя текст, может на странице 17, а может на странице 325.
С кодом всё то же самое. Когда код состоит из гигантских методов-портянок, приходится сканировать их глазками от начала и до конца. Бесполезная трата времени

Второй негативный момент, связанный с огромными методами-портянками: такой код заведомо нельзя переиспользовать. В недрах такого метода есть нужная тебе логика, но она переплетена с другими аспектами. Просто вызвать такой метод из другого кода не возможно. Летят копипасты кода...
SerVer1C; +1 Ответить
17. pbelousov 46 10.03.25 20:30 Сейчас в теме
(12) про огромные портянки - это вы от себя придумали.
я писал про код, который целиком вмещается на 1 экран,
"понятен даже ребенку"

но для сонара и ревьюера он "крайне сложен".

и вот именно этот код, при попытке его упростить
(а как - только выделить кусок в отдельную функцию) - распадается на атомы.
8. gybson 10.03.25 17:34 Сейчас в теме
Сонар объективен. Это самое главное.
13. quazare 3883 10.03.25 18:27 Сейчас в теме
(10) не встречал ни одного программиста, у которого код был бы сложнее, чем БСП... выражение "мучаться с кодом" - это скорее твои какие-то комплексы, а не проблемы кода

код никому ничего не должен... хочешь - пиши запросы в цикле, хочешь - оптимизируй все единым запросом, если время есть...

а сидеть на сайте о болтать о правильности написания кода - может любой... прислушиваться непонятно к кому с около-нулевым рейтингом- такое себе....
14. alex_sayan 57 10.03.25 18:44 Сейчас в теме
(13) код типовых тоже с душком. Вот в этом-то и беда, что для многих 1сников плохой код стал нормой и стандартом. Всё равно что жить в грязи и не понимать, что живёшь в грязи

а сидеть на сайте о болтать о правильности написания кода - может любой... прислушиваться непонятно к кому с около-нулевым рейтингом- такое себе....

С каких это пор рейтинг на сайте стал показателем знаний или умений? Я могу накидать названия нескольких авторитетных книг по программированию, в которых есть подтверждения моих слов. Могу цитаты из книг накидать. Но смысл? Ты до сих пор не открыл для себя даже базовые понятия качества кода, значит не развиваешься и книг не читаешь, и эти книги даже в руки не возьмешь
pavlov_dv; ixijixi; +2 Ответить
15. quazare 3883 10.03.25 18:53 Сейчас в теме
(14) ты сначала докажи, что полезен сообществу - представь на портале что-нибудь полезное, добейся интереса со стороны сообщества, а затем - разглагольствуй о знаниях, умениях и цитатах - мы к тебе прислушаемся.

Это только так работает...
16. alex_sayan 57 10.03.25 19:00 Сейчас в теме
(15) странные у тебя критерии. Уж не думаешь ли ты, что если навыкладывал на Инфостарте каких-то там статеек, отчетиков и обработочек, это делает тебя умнее меня?
22. user1936660 11.03.25 20:39 Сейчас в теме
(15)
добейся интереса со стороны сообщества, а затем - разглагольствуй о знаниях, умениях и цитатах - мы к тебе прислушаемся
Cообщество тебя уполномочило от своего имени что-то утверждать?
18. user1832003 53 11.03.25 05:37 Сейчас в теме
Выглядит как не нужный мусор (сонар этот). Если вы не оформляете модули согласно стандартам оформления написанным на итс (подписка не требуется), то это вам не поможет.

Что же по примеру. Он вам выдал максимально бесполезную информацию. А критически важной не дал вообще. Вот и думай...
19. webester 26 11.03.25 07:46 Сейчас в теме
Как будто бы вы не понимаете зачем он нужен и специально создаете случаи когда он не применим. Какой в этом смысл? Особенно это мило звучит, по отношению к опенсорс продуктам. Внесите свой вклад исправьте второй случай(если это возможно). В первом случае конечно сонар не должен анализировать такую логику, которая касается параметров виртуальных таблиц, не всегда отборы должны быть в параметрах.
20. o.nikolaev 216 11.03.25 10:15 Сейчас в теме
21. утюгчеловек 42 11.03.25 10:57 Сейчас в теме
Мысли интересные. Но imho гораздо интереснее узнать как выстроен пайплайн разработки до поставки с участием сонара.Насколько он "ручной"

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

В идеале сотрудник должен сделать коммит в своем хранилище (их м/б несколько), указать в комментарии к коммиту номер задачи в таск-трекере, а дальше должны работать роботы - выгружать конфигурации в файлы в репу, скармливать их как-то сонару, если там "всё ок", формировать файл поставки для тестовой среды, обновлять тест, запускать ванессу, если там "всё ок", формировать файл поставки для прода, попутно оставляя следы в таск-трекере...
А если где-то "не ок", то ... ну и понеслась

Кто-нибудь вообще что-то подобное собирал?
Оставьте свое сообщение