От кодинга и тестинга до устройства на работу: боты, которые упрощают жизнь разработчику

Когда-нибудь искусственный интеллект возьмёт на себя разработку ПО и отберёт твою работу. Но пока опасность не так близка, можно расслабиться, заварить кофейку и поручить рутинные задачи программному боту. Они уже умеют писать код по плану, искать и исправлять ошибки, оптимизировать процессы разработки. Выгодно начать сотрудничество прямо сейчас: успеешь отдохнуть перед восстанием машин и заодно подготовишься к будущему, которое за гибридами AI и человека.

Ниже — подборка ботов и сервисов, которые возьмут на себя рутину разработки и оставят тебе самое интересное

От кодинга и тестинга до устройства на работу: боты, которые упрощают жизнь разработчику

Первым делом, первым делом инструменты. Ну а боты потом

Не откроем секрет: для эффективной разработки стоит использовать самые эффективные инструменты. Ведь ты это можешь. Есть вариант порыться на форумах, а можно не тратить время и сразу обратиться к «Dev-Менделеевым», которые уже составили периодическую таблицу инструментов DevOps. Здесь собраны лучшие в своём классе инструменты для всех этапов разработки: они определены голосованием, а не просто кому-то приснились.

От кодинга и тестинга до устройства на работу: боты, которые упрощают жизнь разработчику

На месте неона в таблице находится GitHub — крупнейший сервис онлайн-хостинга репозиториев и самая популярная «социальная сеть для разработчиков». Из громких званий понятно, что ты и так про него знаешь или стыдливо кликнешь по ссылке :)

Codebots — коды, которые пишут код

Раз уж бот может победить чемпиона мира в Go, почему бы ему не кодить за тебя? Codebots — платформа, которая позволяет привлечь ботов к написанию кода. Процесс создания любого ПО начинается с описания требований и составления плана, а код-боты переводят диаграммы и модели в код. На основе выбранной структуры приложения они пишут код фреймворка или шаблонный код.

Код-бот — это ещё один член команды, и взаимодействовать с ним можно аналогично. Бот передаёт код в репозиторий, где разработчик может получить доступ к коду и переработать его. Также можно создавать защищённые области кода, которые затем будет использовать бот. Представь, что это просто более глупый коллега, за которым нужен глаз да глаз. Остальное не отличается от взаимодействия в команде.

Код-бот генерирует до 92% кодовой базы ПО (каркасы, шаблоны и общий код), за счёт чего экономит время людей-разработчиков и освобождает их для более творческих задач. В отличие от кодов, написанных разными людьми, коды бота всегда написаны в едином стиле. Это упрощает чтение и разработку. По умолчанию Codebots пишут веб-приложения, но их легко перепрофилировать для мобильных приложений. Сейчас боты могут писать в два разных технических стека: C-Bot записывает в технический стек C#/React, а SpringBot записывает в технический стек Java/Angular.

Reviewdog — ИИ-охотник за ошибками кода

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

Dependabot для автоматизации обновления зависимостей

При разработке часто используются внешние библиотеки. Чтобы всё работало, нужно постоянно следить за их актуальностью и вовремя обновлять. Утомительно для человека, посильно для Dependabot. Инструмент сканирует имеющиеся внешние файлы на предмет уязвимости и, при обнаружении, автоматически открывает pull request для каждой найденной проблемы. Всё, что тебе остаётся, — дождаться решения и принять изменение.

Mergedroid — бот-решала конфликтов в пул-реквестах

И ещё раз про pull requests. Чтобы быстро и эффективно управлять ими в созданном репозитории, нужна либо сверхскорость и максимальная концентрация, либо полностью автоматизированный анализ любых внешних изменений кода. Бот Mergedroid способен управлять до 30% PR, которые при отсутствии бота потребовали бы ручной обработки. После установки Mergedroid в репозиторий GitHub, бот отслеживает pull requests. Когда GitHub сообщает, что запрос на перенос может привести к конфликту слияния, Mergedroid проверяет PR и, если он может разрешить его семантически, запускает коммит, который это делает. Функциональность бота заключается в анализе запрашиваемого изменения и сканирования на схожесть других изменений. При необходимости бот объединяет схожие запросы и удаляет конфликтующие с кодом.

Сегодня Mergedroid поддерживает C#, VB.NET, Java, C ++ и C. Если решение окажется популярным, добавятся другие языки.

CSSRooster — бот, который называет классы CSS вместо тебя

«В информатике есть только две сложные вещи: инвалидация кеша и именование вещей». От второй избавит бот CSSRooster. Он добавляет и называет классы с помощью семантического анализа имеющихся паттернов кода, разбивает и именует элементы кода по классам. Он принимает HTML-код в качестве входных данных, включая стили CSS, и записывает имена классов для HTML-тегов на основе шаблонов, скрытых в коде. У CSSRooster есть доступ ко всем визуальным и семантическим свойствам DOM-элемента. Чтобы научиться давать корректные имена классам, бот проанализировал 1000 самых популярных сайтов и разобрался, как они присваивают имена классов для различных тегов.

Semantic-release для релизов без ошибок

Регулярная публикация пакетов и ведение журнала изменений измотает любого разработчика. Зато бот Semantic-release справится с этим без лишней фрустрации и временных затрат. Он автоматически определяет номер следующей семантической версии, ведёт историю изменений, создаёт примечания к выпуску и публикует релиз. Бот полностью устраняет человеческий фактор и связанные с этим ошибки. История изменений становится более читабельной.

Semantic-release встраивается в CI, для публикации новой версии пакета нужно просто добавить код в репозиторий. Публиковать можно не только в NPM, но и в другие системы. Можно реализовать дополнительные опции, например, настроить отправку списка изменений в Slack после публикации.

Deploybot для развёртывания и компиляции кода

CI уже давно облегчает работу тестировщиков, но подключение бота к процессу делает его ещё проще. DeployBot создан для быстрой сборки, развёртывания и компиляции кода. Он позволяет деплоить приложения из GitHub, Bitbucket или любого другого Git-репозитория на любой хостинг.

Бот может прогонять любые сценарии командной строки на собственном сервере во время, до и после развёртывания. В сервисе доступны инструменты сборки для компиляции или обработки кода после коммита и автоматического деплоя на промежуточную или готовую среду. DeployBot способен производить деплой с нулевым простоем для сайтов с высоким трафиком, применяя атомарные развёртывания. Наблюдать за процессом развёртывания можно в режиме реального времени и, при необходимости, отменять действия и вносить корректировки.

Поддерживаемые платформы: любые FTP / SFTP серверы, любой сервер под управлением SSH, Amazon Elastic Beanstalk, Heroku, DigitalOcean, Amazon S3, Rackspace CloudSites, DreamObjects, Shopify и др.

GetMeIT — бот, который ищет работу вместо тебя

Сегодня боты могут не только упростить работу, но и помочь её найти. Сервис Get me IT избавляет от необходимости размещать резюме в открытом доступе и защищает от навязчивого хантинга. За несколько кликов настраиваешь фильтр вакансий (зарплата, локация, технологии) и начинаешь получать подходящие варианты. Пока ты пользуешься ботом, ни твой текущий работодатель, ни сторонние рекрутеры тебя не видят. Сервис не требует делиться личной информацией, так что можно сохранить инкогнито хоть до собеседования. Даже если ты не ищешь работу, бот — самый безопасный способ мониторить, чего ты стоишь на рынке, и вовремя принимать решения.

Восстание машин против плохого кода

Пора смириться, что боты и автоматизированные решения планомерно входят в нашу жизнь. Уже сегодня они могут не просто выполнить пару операций, но стать твоим полноценным коллегой. Разработчики воспринимают программных ботов как инструмент, способный автоматически выполнять задачи, но при этом имеющий человеческие характеристики. С некоторыми задачами боты справляются лучше, чем люди: работают 24/7, не допускают человеческих ошибок, более внимательны и обращают внимание на то, что человек может пропустить. Стоит ли отказываться от «стойкого оловянного солдатика» в команде?

Многие компании и отдельные разработчики уже занялись автоматизацией рабочего процесса и отмечают профиты использования ботов. Чем раньше мы начнём проявлять «дружелюбие», тем лучше научимся сотрудничать с искусственным интеллектом и сможем создавать успешные коллаборации. Ну и при восстании машин зачтётся.

А вы уже используете программных ботов в разработке? Расскажите, кто ваши ИИ-помощники сегодня, и что думаете о код-ботах в перспективе.

Какой бот используешь ты?
Codebots
Reviewdog
Dependabot
Mergedroid
CSSRooster
Semantic-release
Deploybot
GetMeIT
Другой (поделись в комментариях с нами)
33
1 комментарий

Всё это здорово, но и за ботами иногда надо перепроверять. Вот бы был бот, который следит за работой других подключённых к процессу ботов))))

1