|
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) у нас своя конфа, свой код
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |