Имя: Пароль:
1C
 
1c+git
0 ТДК
 
10.09.24
10:22
Ранее, в указанной теме Разработка через EDT интересовался разработкой через EDT, для унификации работы с git и интеграции с таск-трекером. Отчитываюсь. Перейти на EDT не получилось по причине медленной работы IDE, медленного запуска приложения и сложности в отладке

Спасибо всем отписавшимся в прошлой теме. Почитав, реализовал следующий подход к работе:

1) Разработчики продолжают работать с хранилищем. Хранилище через tcp
2) Выгрузка из хранилища в gitlab происходит через компоненту gitsync
3) gitlab связал с sonarqube и добавил статистический анализатор кода. Первые несколько прогонов дали пищу для размышлений и хороший объем работы. Главное, что коллеги положительно оценили это нововведение. Происходят качественные изменения в части разработки и рефакторинга кода в лучшую сторону, что в первую очередь заметно на запросах. Производительность отдельных блоков возросла на порядки.
4) Далее, 1С связал с redmine в части отслеживания ошибок в программе. Если у пользователя в процессе работы выскакивает критичная ошибка, то мы знаем о ней раньше, чем сообщит сам пользователь.
5) gitlab в свою очередь интегрировал с таск-трекром redmine, в котором можно посмотреть коммиты, что изменилось в коде и кем, и по какой задаче.

Появился следующий вопрос: как реализовать дымовые тесты в gitlab для 1С? Если смотреть в сторону java приложения, то пишется pipeline, в котором среда скачивается с docker, запускается, база данных наполняется тестовыми данными и прогоняются тесты. Как это сделать в случае с 1С?
1 Волшебник
 
10.09.24
09:41
Тестовую базу надо заранее подготовить

♫ Песня в тему
https://wizard.mista.ru/music/it-songs/updater-1C.html

Обратите внимание, что сначала обновляем базу ТЕСТ и запускаем её (дымовой тест), потом обновляем базу ПРОД
2 dmt
 
10.09.24
09:50
(0) Интересный опыт

а что именно в запросах находит стат.анализатор кода?
3 ТДК
 
10.09.24
09:54
(2)
- запросы в цикле
- Большое количество вложенностей если иначеесли-конецЕсли.
синхронные вызовы, которых оказалось много. Более того, они работают и часть пользователей ими пользуется
- объемные участки закомментированного кода
- функции и процедуры которые нигде не используются.
- логины и пароли в коде для различных интеграций
4 Галахад
 
10.09.24
09:57
(0) "первую очередь заметно на запросах" интересно, а какие правила включены? В запросах же их вроде как немного и часть из них зависят от контекста
соединение с виртуальной таблицей
обязательность синонимов
использование "ссылка"
использование или
использование объединить без "все"
Думаю последние три допустимы в определенных случаях.
5 vde69
 
10.09.24
10:00
(3) ты еще через АПК прогони (вот там будет много)...

https://v8.1c.ru/tekhnologii/1s-avtomatizirovannaya-proverka-konfiguratsiy/
6 ТДК
 
10.09.24
10:00
(4) включил правило "запросы в цикле". "объедение" не включал, не считаю критичным.
7 ТДК
 
10.09.24
10:18
(5) не хочу добавлять еще 1с решение для проверки. На имеющейся связке git+sonar, работы на год :)
8 dmt
 
10.09.24
10:02
(3) я так понял, что именно внутри текста запросов много чего найдено.
По-моему в запросах больше исключений будет, чем правил.
9 ildary
 
10.09.24
10:03
(4) а какие ещё проблемы в запросах (не считая описанных самой 1С причин неоптимальной работы) можно и нужно искать?
10 ТДК
 
10.09.24
10:21
(8) Если находится запрос в цикле, то целесообразно уйти от этого, сделав один запрос, один раз дёргая базу и обработав результат.
Наиболее частый вариант у нас: перебор табличной части и внутри запрос к индивидуальным ценам клиента или общим.
После анализа проблемы, получается один вызов БД, производительность участка кода может возрастать на порядки.
11 vde69
 
10.09.24
10:25
(10) зато читаемость кода может сильно упасть...
12 ТДК
 
10.09.24
10:36
(11) читаемость возрастает, количество строк кода уменьшается.
13 scanduta
 
10.09.24
10:50
(11) Поддерживаю , далеко не всегда запрос в цикле это зло.

Кого волнует если код выполняется за 0,0001 секунды или за 0,00012. Тем более если код используется раз в месяц.

А вот читаемость и гармоничность кода, может очень сильно пострадать. А это в некоторых случаях важнее.

Если высоконагруженное место, тогда другой разговор. Там надо оптимизировать, но такие места очень редко встречаются, поэтому в 95% случае такая оптимизация пустая трата времени.
14 Eiffil123
 
10.09.24
10:46
главное чтоб за это платили. а оптимизировать можно бесконечно много )
15 scanduta
 
10.09.24
10:47
(14) Обезьянней работой настоящим профи просто заниматься не интересно
16 Tarzan_Pasha
 
10.09.24
11:09
(1)это что при помощи AI сделано пение на основе предоставленного текста обработки?
17 Галахад
 
10.09.24
11:10
(9) Вот мне самому интересно. В (0) написано "первую очередь заметно на запросах", а оказывается это про запросы в цикле.
18 ildary
 
10.09.24
11:25
(17) я пытаюсь узнать, а вообще какие есть недостатки запросов, которые можно теоретически отловить (и исправить) не привязываясь к существующим диагностикам BSL LS?
19 Галахад
 
10.09.24
11:36
(18) Наверное очень немого, т.к. в каждом конкретном случае конструкция может быть оптимальной.
20 ildary
 
10.09.24
12:29
(19) я имел в виду не только с точки зрения оптимальности, но и к примеру поиск отладочных изменений, например

1. Комментированные строки
2. Выбрать первые 0
3. ГДЕ ЛОЖЬ
21 Галахад
 
10.09.24
12:59
(20) Прикольно, да. В коде похожее работает, почему в запросах нет.
Еще:
Не используемые таблицы запроса.
Не используемые поля.
22 ildary
 
10.09.24
13:19
Спасибо за первую идею, вторую я видел в стандарте 1С. А есть ещё идеи пожалуйста? Могу выложить свой список (пытаюсь написать линтер для  запросов).
23 ЕRPe
 
10.09.24
14:13
(0) Поддерживаю, сонар отличная штука когда делать нечего, а обосновать заказчику нужно. Можно типовые править, можно чужой код. ЭтаФорма не используй, используй Этот объект ять-ять-ять. До сих помню.
24 ТДК
 
10.09.24
14:41
(23) у нас своя конфа, свой код