Меня зовут Никита Иванченко. В мире 1С я с 2010 года, в OneScript погрузился в 2015 году. Люблю рассказывать о практиках DevOps, развеивать мифы и делиться опытом. В этой статье не будет сложных концепций и длинных листингов кода — все будет максимально доступно. Ее цель – представить инструмент, который позволит любому разработчику, независимо от уровня, работать в парадигме продуктовой разработки.
Функционал
Консольная команда для запуска браузера с интерфейсом:
Bootstrapper gui -o
После выполнения команды открывается браузер.
Это единая команда для управления всеми остальными (как во «Властелине колец»). Вы вводите команду, запуская консольную утилиту.
Разберем базовый функционал.
Работа с конфигурацией. Для этого предусмотрена отдельная подсистема. Если мы в нее зайдем, то увидим информацию о той конфигурации, которая выгружена. Отпадает необходимость в ручных действиях или BAT-файлах: просто откройте подсистему и нажмите «выгрузить в файл» или «загрузить из файла».
Помимо этого, есть кнопка «Анализ BSL LS» – аналог SonarQube для 1С. Раньше эту проверку производили инженеры, которые настраивали CI/CD. Затем требовалось выгрузить код в файл и открыть его через VS Code, чтобы просмотреть ошибки. Теперь достаточно нажать кнопку «Анализ BSL LS», чтобы получить информацию об ошибках.
Работа с расширениями. В инструменте можно работать с расширениями так же, как и с конфигурацией. Доступны выгрузка, загрузка, просмотр списка расширений проекта и выполнение анализа BSL LS.
Анализ BSL LS. При переходе в подсистему «Анализ BSL LS» вам выводится история выполненных проверок. Все результаты анализа хранятся локально, поэтому данные не покидают ваш компьютер, и нет риска, что кто-либо узнает о проведенных проверках. Историю запусков можно очистить, удалив плохие результаты и оставив хорошие.
Результат анализа BSL LS показывает общее число замечаний и время выполнения. На рисунке выше видно, что общее время на исправление технического долга составляет 51 минуту. В качестве идеи для будущих версий можно добавить кнопку, при нажатии на которую будет открываться Visual Studio Code. В открывшейся среде разработки можно будет сразу исправить код.
Тестирование. Для повышения качества разработки одного анализа недостаточно. В инструменте есть подсистема с тестами, перейдя в которую, вы увидите тестовые фреймворки. В данном примере представлена Vanessa ADD, так как в ней использовались отдельные внешние обработки. Также планируется добавить Vanessa Automation и xUnit.
На вкладке фреймворка можно запустить либо конкретный тест, либо все тесты одновременно. Также можно собрать тесты, если первоначально они хранятся в разобранном виде в xml-файлах или в исходниках.
Чтобы посмотреть результаты тестов, предусмотрена кнопка «Перейти к результатам». Хотя результаты тестов различаются в зависимости от фреймворка, я стараюсь свести все к единому формату.
После нажатия кнопки происходит переход на страницу истории выполнения тестов. На ней отображается статус, количество успешных и неуспешных тестов, история запусков. Важно отметить, что история запусков также хранится локально. То есть никто не узнает, если тест завершился неудачей.
Через историю запусков можно перейти к конкретному тесту.
При детализации конкретного запуска отображается отчет по выполнению теста. В нем выводится информация: где и на каком этапе возникла ошибка, причина ее возникновения и к какому виду она относится. Тест может иметь статус: не пройден, пропущен и т.д.
Стоимость
Инструмент имеет открытый исходный код. Однако не забывайте, что авторов надо поддерживать, поэтому переходите на GitHub, ставьте лайки и пишите отзывы. Это вдохновляет на новые свершения.
Как это работает
При запуске команды, указанной ранее, запускается OneScript, Autumn\winow, Vanessa-runner, BSL ls, прочие библиотеки OneScript и открывается веб-интерфейс инструмента в браузере. Из зависимостей необходимо наличие платформы 1С, OneScript и BSL LS (бинарный файл) для проведения анализа кода.
У инструмента есть внутренняя очередь – задачи (сборка, тесты, анализ), которые выполняются последовательно. Например, пользователь нажимает «собрать конфигурацию», «разобрать конфигурацию» и «запустить тесты». Инструмент самостоятельно с помощью внутренней очереди будет последовательно выполнять все задачи.
Основной сценарий работы: у пользователя открыты Конфигуратор и Bootstrapper. Он пишет тесты/сценарии (фичи) и запускает проверки, пока тест не «позеленеет».
Настройка инструмента для работы
Для настройки необходимо подготовить два файла:
-
Общий файл для проекта. Его необходимо закоммитить в репозиторий. В нем будет храниться конфигурация, исходники, каталог сборки и список расширений. Также можно хранить настройки тестовых фреймворков.
Код:
{
"КаталогКонфигурации" : "tests\\tmp\\conf\\src",
"КаталогСборки" : "tests\\tmp\\build",
"ВанессаАДД" : {
"КаталогИсходников" : "tests\\tmp\\add\\src",
"КаталогОбработок" : "tests\\tmp\\add\\bin"
},
"Расширения" : [
{
"Имя" : "Расширение1",
"Каталог" : "tests\\tmp\\ext\\Расширение1\\src"
}
]
}
-
Персональный файл для разработчика. В нем хранится каталог и строка подключения к базе.
Код:
{
"bootstrapper": {
"ibconnection": "/FC:\\nivanchenko\\repos\\github\\bootstrapper\tests\features\\ib",
"v8version": "8.3.25",
"dbuser": "Админ",
"dbpwd": "",
"ibcmd": false,
"bslls": "C:\\nivanchecko\\app\\bsl-language-server\\bsl-language-server.exe"
}
}
Что в планах
-
Работа с внешними отчетами и обработками.
-
Работа с git репозиторием.Текущая реализация требует доработки. Планирую улучшить, добавив возможность получить/отправить/коммитить код.
-
Добавление новых тестовых фреймворков, чтобы быть «в ногу со временем».
-
Улучшение ui. Планируется добавить темную тему.
-
Добавление системы плагинов.
-
Ренейминг. Рассматривается возможность переименования проекта, например, в ODT (Open Development Tools).
-
Добавление CLI.
Для кого?
Я выделил три категории пользователей, которым может быть интересен инструмент:
-
Тем, кто хотел попробовать новые практики, но не знал, с чего начать.
-
Тем, кто уже использует инструменты, но испытывает неудобства.
-
Тем, кто сопротивляется переходу на ЕДТ – здесь похожий интерфейс, но проще (тем, кто использует ЕДТ, инструмент может быть менее актуален, так как они используют совершенно другой подход к организации процесса разработки).
*************
Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.
Вступайте в нашу телеграмм-группу Инфостарт