paint-brush
ИИ в разработке программного обеспечения: изучение GitHub Copilot с помощью идей команды исследований и разработок ELEKSк@elekssoftware
754 чтения
754 чтения

ИИ в разработке программного обеспечения: изучение GitHub Copilot с помощью идей команды исследований и разработок ELEKS

к ELEKS6m2024/02/06
Read on Terminal Reader

Слишком долго; Читать

Узнайте о роли искусственного интеллекта в разработке программного обеспечения, пока ELEKS исследует инновационные возможности GitHub Copilot.
featured image - ИИ в разработке программного обеспечения: изучение GitHub Copilot с помощью идей команды исследований и разработок ELEKS
ELEKS HackerNoon profile picture
0-item
1-item

ИИ совершает революцию в разработке программного обеспечения, делая ее более эффективной, продуктивной и инновационной. В этой статье мы исследуем влияние искусственного интеллекта на разработку программного обеспечения, углубляясь в выводы, полученные в результате исследования GitHub Copilot, проведенного командой исследований и разработок ELEKS.


Поскольку мир разработки программного обеспечения продолжает развиваться, роль ИИ становится все более важной. Учитывая такие преимущества, как возможность сократить время и усилия, необходимые для кодирования, и многое другое, неудивительно, что ИИ в разработке программного обеспечения в настоящее время является горячей темой.


92% разработчиков в США уже используют инструменты ИИ-кодирования как на работе, так и за ее пределами. - Гитхаб


70% разработчиков считают, что инструменты ИИ-кодирования дадут им явное преимущество в профессиональных начинаниях, включая улучшение качества кода, сокращение времени выполнения и расширенные возможности разрешения инцидентов. - Гитхаб


4 из 5 разработчиков ожидают, что инструменты ИИ-кодирования сделают их команду более эффективной для совместной работы. - Гитхаб


Хотя ИИ еще не достиг той стадии, когда он может самостоятельно создавать, тестировать и запускать программные продукты без участия человека, по сравнению с прошлым, он значительно ускорил общее время выполнения работ.


Доступно множество инструментов на базе искусственного интеллекта, которые могут помочь в разработке пользовательских приложений путем генерации и автозаполнения кода, а также обнаружения и исправления ошибок. Команда исследований и разработок ELEKS тщательно изучила один из таких инструментов — GitHub Copilot — чтобы оценить его влияние на задачи разработчиков, продолжительность выполнения и стандарты качества предоставляемых рекомендаций. Давайте посмотрим поближе.

Что такое GitHub Copilot?

GitHub Copilot — инструмент для автодополнения и генерации кода. Он построен на основе OpenAI Codex и обучен в общедоступных репозиториях GitHub. В результате он предлагает код для любого языка программирования. Однако качество предложений зависит от количества публичных репозиториев, основанных на конкретном языке программирования и фреймворке.


GitHub Copilot работает с программным кодом с помощью плагинов интегрированной среды разработки (IDE). В настоящее время поддерживаются только следующие IDE:

  • Код Visual Studio
  • Визуальная Студия
  • Неовим
  • все IDE от JetBrains

Обзор расследования ELEKS GitHub Copilot

Это исследование было направлено на изучение влияния использования Copilot как на скорость, так и на качество разработки.


Для проведения этого исследования был инициирован небольшой проект в качестве полигона для проверки различных предположений. С помощью команды, состоящей из четырех опытных разработчиков среднего звена, обладающих опытом работы с React, Redux, TypeScript, Jest, Vite, PHP, Symfony и Codeception, мы начали расследование и определили наши цели и подходы следующим образом.

Цель

Подход

Оцените зависимость между компетентностью разработчика и производительностью при использовании Copilot.

Для серверной разработки мы выбрали фреймворк Symfony. У серверной команды не было существенного опыта работы с этой структурой.
Чтобы оценить качество серверного решения, к ревью кода был привлечен эксперт Symfony. Эксперт также разработал базовую структуру проекта, которая вышла за рамки типовой и использовалась в крупном коммерческом проекте.

Изучите влияние на типичные задачи разработчиков.

Перед началом проекта мы создали WBS, охватывающую типичную работу разработчика над коммерческим проектом. Также мы провели сеанс оценки задач.

Изучите влияние на языки программирования и платформы по популярности.

Мы разработали веб-приложение с тестовым покрытием.

Оцените влияние на время выполнения задачи

Мы произвели предварительную оценку отдельных задач по проекту.

Повышайте эффективность исследований

Мы проводили сессии по обмену знаниями внутри команды во время ежедневных синхронизаций.

Изучите качество предложений

Мы протестировали, как Copilot справляется с неклассической и более сложной структурой проекта.



Основные выводы исследования ELEKS на GitHub Copilot

Исследование GitHub Copilot, проведенное ELEKS, позволило сделать несколько ключевых выводов, которые проливают свет на возможности и преимущества этого инструмента. Вот более подробное описание:


Обратите внимание, что результаты расследования основаны на субъективных отзывах команды, наблюдениях за их работой и проверках кода их решений.

GitHub Copilot имеет два режима работы:

  1. Режим автодополнения кода — почти всегда положительно влияет на производительность.
  2. Режим генерации кода на основе комментария с подсказкой — хорошо работает только для типовых структур кода. Это может быть контрпродуктивно при генерации бизнес-логики или нетиповых решений, поскольку анализ предложенных вариантов кода занимает много времени.

Качество предложений кода GitHub Copilot зависит от следующего:

  • Популярность выбранного технологического стека в публичных репозиториях. Чем популярнее технология или язык, тем выше качество предложений GitHub Copilot.
  • Структура кода и архитектура приложения. Чем более типично ваше решение, тем более эффективные предложения предоставляет GitHub Copilot. Особенно это заметно на старте разработки проекта.

Другие преимущества GitHub Copilot:

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

Общие выводы команды:

  • Инструмент не оказал никакого влияния на качество кода — ни положительного, ни отрицательного. Мы считаем, что на данный момент он не может заменить процесс проверки кода, ручное тестирование кода, выполняемое разработчиком, запуск автотестов, тестирование безопасности и так далее.
  • Эффективность зависит от компетентности разработчика в данном стеке технологий. Чем лучше навыки разработчика, тем более эффективным окажется этот инструмент.
  • Ценность GitHub Copilot для изучения новых технологий весьма сомнительна.
  • У команды сложилось впечатление, что предложения кода становятся лучше, если все файлы, связанные с кодом, открыты в IDE.
  • Как и любой другой инструмент, GitHub Copilot требует определенных навыков. Чем больше команда тренировалась, тем больше положительных отзывов получало.
  • Отзывы о приросте производительности различаются в зависимости от стека технологий, уровня компетенции специалиста и субъективных причин.


5–10% средний прирост производительности членов команды. - Команда исследований и разработок ЭЛЕКС


Кстати, в ходе проекта команда обнаружила несколько ошибок в GitHub Copilot. Например, Copilot предлагал варианты кода на основе кода из другого проекта, открытого в другом окне IDE. Он предлагал синтаксически неверный код. Copilot конфликтует с функциями некоторых плагинов (встроенных или добавленных сторонними производителями), которые также имеют функцию автодополнения кода.

Выводы

GitHub Copilot — мощный инструмент, который положительно влияет на скорость разработки и удовлетворенность работой разработчиков. Как и любой другой инструмент разработки, для его освоения требуется время.


На данный момент индивидуальная ежемесячная лицензия стоит всего 10 долларов США, а стоимость бизнес-плана — 19 долларов США в месяц. GitHub Copilot, несомненно, будет финансово выгоден для использования на проектах, особенно для специалистов среднего уровня компетенции и выше.


Команда прогнозирует, что с ростом опыта использования GitHub Copilot скорость разработки может вырасти на 5–25%, в зависимости от популярности технологии и уровня компетенции разработчика. GitHub Copilot гарантированно не замедлит разработку, поскольку разработчики постепенно приобретут опыт и понимание того, когда использовать этот инструмент выгодно, а когда нет.


В заключение отметим, что влияние ИИ на разработку программного обеспечения, примером которого являются такие инструменты, как GitHub Copilot, неоспоримо. В целом, такие инструменты, как GitHub Copilot, не могут заменить разработчика, но служат ценными инструментами для повышения комфорта и производительности разработчиков, способствуя развитию разработки программного обеспечения в мире, в котором все больше внимания уделяется искусственному интеллекту.


Откройте путь к эффективному процессу разработки программного обеспечения и успешным результатам, свяжитесь с экспертами ЭЛЕКС .


Также опубликовано здесь .