Улучшение опыта разработчиков с помощью ИИ
27 апреля 2023 г.Отличный опыт разработчика напрямую связан с отличными результатами.
Традиционно улучшение условий для разработчиков (также известное как DevEx или DX) было поэтапным проектом, требующим времени и инноваций.
Хорошие новости? Искусственный интеллект предвещает появление гораздо более быстрых и эффективных способов значительно улучшить DevEx.
В этом посте я расскажу о четырех аспектах жизни инженера-программиста, которые созрели для освежения с помощью ИИ. Я расскажу, как улучшить DX с помощью ИИ для разработчиков программного обеспечения и как это может выглядеть для таких команд, как ваша.
1. Доставка кода
Инженеры-программисты в большинстве компаний-разработчиков программного обеспечения пишут код каждый день. Но многим инженерам регулярно приходится решать относительно тривиальные задачи, которые отвлекают их от более интересных задач. Обычно это не популярно — кто просыпается каждый день, чтобы писать наборы тестов? Хорошо, некоторым это нравится, но вы понимаете, о чем я!
Так что кажется логичным начать улучшать взаимодействие с разработчиками.
К счастью, я думаю, что эта область также привлекает наибольшее внимание новаторов в области ИИ с инструментами, которые работают в различных редакторах кода, от VS Code до Jetbrains, и почти на всех языках программирования, включая JavaScript, Java, Python, C#, Golang, SQL и многие другие.
Автозаполнение
Давайте начнем с того, что уже является основным направлением разработки программного обеспечения.
Автозаполнение делает то, что написано на банке. Он работает так же, как на вашем телефоне, но для кода. Автозаполнение для инженеров обычно учитывает кодовую базу, поэтому оно понимает ваш текущий контекст и шаблоны кодирования.
Он улучшает DevEx, упрощая и ускоряя написание кода.
Инструменты. GitHub Copilot — это признанный инструмент с функцией автозаполнения. Если вы готовы к более передовым инструментам, продолжайте читать.
Моя точка зрения. Возможно, это наименее революционная реализация ИИ для доставки кода, но она существует дольше всех, лучше понятна и несет меньше рисков. Отлично подходит для организаций, избегающих риска.
Понимание вашей кодовой базы
Итак, вы унаследовали устаревшую кодовую базу, которая запутана, как клубок пряжи.
Понимание и изменение кода пугает. Но LLM, управляемые ИИ, могут прийти вам на помощь. Эти модели могут анализировать код, отвечать на ваши вопросы о его функциональности и предлагать улучшения.
Например, вы можете спросить LLM: «Что делает эта функция?» Он может предоставить краткую сводку или визуально представить логику кода.
Инструменты. Arenaline AI специализируется на понимании вашей кодовой базы и позволяет вам задавать любые вопросы, чтобы помочь вам понять ее. р>
Мое мнение. Инструменты, которые хорошо справляются с этой задачей, экологичны, но постоянно совершенствуются. Попробуйте Arenaline для бесплатного ознакомления с этой концепцией без необходимости настройки.
Написание тестов
Какие бы тесты вы ни писали и используете ли вы TDD или BDD, ИИ способен в 10 раз увеличить ваши результаты.
Давайте посмотрим правде в глаза. Большинство инженеров не в восторге от перспективы написания наборов тестов. ИИ может писать наборы нетривиальных (и тривиальных) наборов тестов за считанные секунды. Что не нравится?
Инструменты Codium специализируется на написании тестов
Мое мнение: специализированные инструменты лучше справляются с созданием тестов, чем просто запрос ChatGPT, потому что для этого они обучены. Инвестируйте в правильные инструменты. Ваши разработчики будут вам благодарны.
Интеллектуальная помощь в написании кода
Это «следующий уровень». Интеллектуальные системы поддержки кода предназначены для полного понимания вашей кодовой базы и контекста и могут писать, рефакторить или тестировать код.
На практике это означает, что ИИ может предлагать существенные фрагменты кода, выявлять и исправлять ошибки, рекомендовать лучшие практики в зависимости от конкретного контекста вашего проекта и многое другое. Довольно мощно.
В зависимости от вашего инструмента вы можете задавать вопросы или взаимодействовать с кодовой базой с помощью обработки естественного языка (NLP) так же, как вы можете общаться с ChatGPT.
Это хоум-ран для команд, которые хотят иметь хороший опыт разработки — тип инструмента настолько хорош, что возвращение к старым методам не кажется вариантом. Этот пост посвящен DevEx, но очевидно, что эти лиды должны привести к гораздо лучшим результатам по всем направлениям.
Инструменты:
- Tabnine – признанный помощник по программированию с использованием ИИ. Его преимущество заключается в том, что он является юридически надежным и соответствует требованиям, но на момент написания статьи он работает на устаревшем стандарте GPT-3.
- GitHub Copilot X еще не выпущен, но он сможет выполнять множество задач, включая объяснение кода, исправление ошибок, тестирование, написание шаблонов запросов на вытягивание и многое другое.
- Sourcegraph Cody в настоящее время находится в стадии бета-тестирования, если вы не можете дождаться Copilot X. Они могут просматривайте диаграммы кода и документы компании вместе с кодовой базой, чтобы получить более полный контекст.
- Изменяемый ИИ это более тонкая версия с такими функциями, как автозаполнение, рефакторинг и безопасная разработка на основе подсказок. вне бета-версии.
Мое мнение: GitHub Copilot X — самый раскрученный инструмент в этой категории, и он еще даже не вышел. Организации с большим аппетитом к риску могут использовать «зеленый» ИИ, значительно ускорить разработку и получить долгосрочное конкурентное преимущество. Многие организации любят Tabnine с 2018 года, и я предполагаю, что они работают над развертыванием GPT-4. Следите за этим пространством.
2. Написание документации и комментариев
Документация — это источник жизненной силы любого программного проекта. Она содержит необходимые рекомендации и информацию как для разработчиков, так и для технических менеджеров и менеджеров по продуктам.
Однако создание и поддержание точной, актуальной и легко усваиваемой документации может оказаться непростой задачей.
Вы ненавидите плохую документацию, как и ваши инженеры.
И, честно говоря, большинству из них тоже не нравится это писать.
Документация на основе искусственного интеллекта и генерация комментариев уже готовы, и у вас больше никогда не будет неполных, устаревших или запутанных документов.
Используя возможности искусственного интеллекта, мы можем автоматизировать процесс создания комплексной и контекстно-зависимой документации.
Инструменты:
- Mintlify анализирует структуру кода, извлекает необходимую информацию и представляет ее в удобном для пользователя формате. ли>
- Readable AI автоматизирует процесс написания комментариев к коду.
Моя точка зрения: если это оставить людям (независимо от того, насколько они благонамеренны), документы никогда не будут приоритетом. Поручите работу инструменту, который сделает это за считанные секунды, последовательно и не будет ненавидеть писать их.
3. Инструменты для совместной работы
Вероятно, вы и ваши инженеры ежедневно тратите часы на то, чтобы следить за развитием своих проектов.
Давайте подумаем о некоторых примерах мест, отнимающих время:
* Использование Slack и Teams * Поиск того, где кто-то поделился нужной вам ссылкой * Погоня за кем-то, чтобы просмотреть ваш запрос на включение * Проверка новых коммитов * Пытаюсь выяснить, разблокированы ли вы, проверяя Jira
Если каждый человек тратит на это по 2 часа в день, а в вашей команде 10 человек, это 100 часов в неделю.
По мере увеличения размера и сложности проектов время, необходимое для того, чтобы наверстать упущенное и найти то, что вам нужно, увеличивается, что приводит к недопониманию, дублированию усилий, задержкам и т. д.
Это то разочарование, на которое инженеры жалуются своим друзьям и родственникам в конце дня, раздражение, которое подрывает лояльность к компании. Это не то, что может себе позволить большинство команд.
Инструменты для совместной работы на базе ИИ могут помочь командам преодолеть эти трудности и оптимизировать рабочие процессы.
Помощники для совместной работы
Многие организации спешат добавить ИИ на свои платформы.
Идея такова: вместо того, чтобы рыться в сообщениях и цепочках в поисках существенных моментов, ИИ выберет их за вас.
Мое мнение: делать это без искусственного интеллекта — огромная трата времени. Хотя существуют боты для совместной работы (многие из которых специализированы для одной платформы, например Slack), ни один из них пока не специализируется на разработке программного обеспечения. Я имею в виду, что они не интегрируются с такими сервисами, как GitHub и Jira, и не могут отображать то, что волнует инженеров, например запросы на вытягивание.
4. Проверка кода
Анализируя отправленный код и предоставляя интеллектуальные рекомендации, ИИ может помочь разработчикам выявлять потенциальные проблемы, соблюдать стандарты кодирования и понимать сложные фрагменты кода.
Это сокращает время, затрачиваемое на проверку кода, и сводит к минимуму риск человеческой ошибки.
Для старших технических менеджеров это означает более эффективный и точный процесс проверки, что приводит к повышению качества кода и удобства сопровождения.
Инструменты:
- Codeball AI оценивает запросы на вытягивание, выделяет риски и может автоматически одобрять запросы на вытягивание с низким уровнем риска.< /сильный>
- Planar делает нечто подобное
- What The Diff может создавать сводки запросов на вытягивание и управлять мгновенным рефакторингом кода, чтобы избежать обратной связи. и далее.
Моя точка зрения: правда в том, что проверки кода могут быть медленными, трудными и надежно блокировать прогресс. Некоторые инструменты проверки кода утверждают, что могут в 10 раз ускорить процесс проверки кода. Даже если они могут увеличить скорость только в 2 раза, они часто оправдывают вложения только в DX.
Мы написали этот блог о лучших инструментах, о которых должны знать технические директора.
Подведение итогов
ИИ может преобразовать опыт разработчиков, упростив доставку кода, улучшив документацию, оптимизировав инструменты для совместной работы и многое другое.
Используя возможности базовых нейронных сетей, глубокого обучения и алгоритмов машинного обучения, которые находятся под управлением ИИ, ваша команда может создать более эффективную, увлекательную и приятную рабочую среду, что приведет к лучшим результатам по всем направлениям.
Если все сделано правильно, вы получите максимальную отдачу от своих замечательных разработчиков и сделаете людей счастливее, повысите производительность разработчиков и улучшите процессы разработки.
Ваши разработчики, технические менеджеры и менеджеры по продуктам будут благодарны вам за то, что вы сделали их работу более продуктивной и продуктивной.
Не пропустите новые идеи и передовые идеи в мире разработки программного обеспечения и искусственного интеллекта.
:::информация Также опубликовано здесь.
:::
:::информация Рекомендуемое изображение, созданное с помощью Kadinsky 2 со следующей подсказкой: Инженер смотрит в бинокль.
:::
Оригинал