ru:https://highload.today/blogs/na-shho-zdatnij-novij-shi-asistent-dlya-koderiv-copilot-x-pershi-vrazhennya/ ua:https://highload.today/uk/blogs/na-shho-zdatnij-novij-shi-asistent-dlya-koderiv-copilot-x-pershi-vrazhennya/
logo
Machine Learning      14/06/2023

На что способен новый ИИ-ассистент для кодеров Copilot X: первые впечатления

Сергій Гузенко BLOG

CEO у WEZOM

Мы продолжаем следить за новыми инструментами для разработчиков на основе генеративного ИИ. Сегодня в поле нашего зрения попал один из самых интересных и перспективных экземпляров – Copilot X.

Это полноценный цифровой ассистент для кодеров на базе GPT-4, который может помочь с написанием нового кода, рефакторингом, автотестированием – и вообще, юз-кейсов ему придумывают немало. Пора взглянуть на Copilot X, чтобы оценить его современные возможности и потенциал. 

Что такое Copilot X

Искусственный интеллект автодополнения кода Copilot был запущен командой Github еще в 2021 году, задолго до волны хайпа вокруг ChatGPT. Но совсем недавно, в марте, он получил большое обновление с умным чатом. Второй пилот понимает естественный человеческий язык и встраивается непосредственно в IDE, чтобы на 100% понимать код разработчика и контекст его проекта. 

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

Как это работает?

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

На практике второй пилот интегрируется в IDE – точно известно о поддержке Visual Studo и VS Code. Вероятно, в дальнейшем появится поддержка JetBrains и Neovim.

Ютубер glich.stream вживую провел с новой технологией несколько экспериментов. Его цель заключалась в том, чтобы испытать возможности чата в реальных задачах разработчика. 

В первом кейсе кодер попытался использовать Copilot X, чтобы с нуля создать расширение GitHub CLI, используя Go. Поэтому он просто написал свой запрос чату на естественном языке, как он обращался бы за помощью к живому человеку: “Как мне создать расширение GitHub CLI с помощью Go?”. И в ответ чат-бот предлагает ему пошаговую инструкцию с примером кода.

Советы Copilot выглядят релевантными, особенно если представить, что эти советы адресованы новичку в Go. Да, помощник рекомендует использовать библиотеку Cobra для определения команд и соответствующую библиотеку для взаимодействия с API Github. Ассистент также сгенерировал шаблон кода – по крайней мере, с него можно начать, хотя первое решение не является оптимальным и требует определенной ручной доработки. Примечательно, что если код не работает, бот извиняется и предлагает разработчику альтернативные решения или пакеты.

Кодер призывает быть осторожным с использованием ИИ для создания проектов с нуля. Фактически мы не знаем источники инструментов, которые может предлагать бот, и это может стать вектором кибератаки для различных злоумышленников.

Онлайн-курс "Project Manager" від Laba.
Станьте проджектом, що вміє передбачати ризики наперед і доводити проєкт до результату, який хочуть замовники. Поділиться досвідом Павло Харіков, former Head of PMO в Kyivstar.
Програма курсу і реєстрація

Во втором эксперименте glich.stream попытался применить чат-бот Copilot, чтобы разобраться в уже существующем коде. В качестве образца была взята часть исходного кода Twitter, который не так давно обнародовал Илон Маск. 

Кодер задает боту крайне короткий вопрос: что делает этот код? И Copilot в ответ начинает его описание в стиле “Капитана Очевидность”. Вряд ли это будет полезно разработчику, который стремится к полученному понятному контексту. 

Очевидно, боту требуются более предметные запросы. Разработчик в конце концов задает ему вопрос о первой попавшейся сущности в коде: “What is Stitch?”. И получает действительный полезный ответ. Copilot предполагает, что речь идет о псевдониме типа или пользовательском классе, определенном еще где-то в кодовой базе. Кроме того, бот прекрасно проявил себя, создав краткую информацию из Readme. Следовательно, если проект хорошо структурирован и наделен качественным Readme, то Copilot может сэкономить уйму времени и предоставить удобную навигацию. 

Наконец, третий эксперимент касался использования Copilot X для рефакторинга существующего кода. Как образец glich.stream использовал утилиту поиска стартовых репозиториев на Github, созданную несколько лет назад – ей как раз не помешает рефактор определенных функций и методов. 

Для начала Copilot смог на естественном языке описать параметры проекта, точно объяснить сущность кода. Это уже хороший результат. Кодер решил поручить Copilot то, с чего начал бы рефактор: заменить библиотеку Axios на интерфейс Fetch, применить async/await вместо promises. Искусственный интеллект в целом справился, к тому же помог разработчику выявить несовместимость Fetch с устаревшей версией Node.js.

Автотестирование с помощью Copilot X

Разработчик Райан Вуд в своем блоге описывает свой опыт использования бота для генерации тестов. Он попросил Copilot X попытаться сгенерировать юнит-тесты для написанной им функции, и ИИ смог сгенерировать под его запрос большую часть шаблонного кода и тестовые данные. При этом они соответствовали тем данным, которые разработчик употреблял в тестах в том же файле. “Столкнулся” бот на генерации точного SQL-запроса, который функция отправила бы на сервер, но это было легко устранить. 

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

Отзывы о Copilot X

Наши разработчики, которым удалось прикоснуться к Copilot X, говорят, что он прекрасно демонстрирует себя в генерации шаблонного кода, особенно когда учится на уже готовых образцах. Он “на лету” подстраивается под ваш стиль кодинга, следует синтаксису и быстро начинает выдавать результаты, которые вы легко можете воспринять за свои. ИИ также готов без подсказки применять те же пакеты, которые вы уже применяли выше, в этом же файле. А иногда может предложить и что-то от себя, за пределами очерченных вами инструментов. 

Онлайн-курс "Управління ІТ-командами" від Laba.
Прокачайте свої soft- і hard-скіли в управлінні кількома IT-командами, отримайте практичні стратегії та інструменти ефективного team-ліда.
Програма курсу і реєстрація

В то же время, в работе с нешаблонным кодом Copilot X скорее мешает. По крайней мере, на формулировку релевантного запроса под такую ​​задачу может уйти непропорционально много времени. Впрочем, его задача лежит в другой плоскости: Copilot вполне способен взять на себя шаблонную работу с учетом контекста проекта. Он незаменим с заполнением различных JSON-данных, построением простых элементов в React и т.д. Единственная проблема – со временем ты начинаешь слишком сильно ему доверять. 

Вероятно, с Copilot X можно извлечь гораздо больше пользы, если глубоко изучить его возможности и научиться формулировать релевантные запросы. Это, безусловно, мощный ассистент – интегрированная в IDE “консультация по гуглу”, инструмент автоматизации и генератор идей. Впрочем, на “убийцу профессии” он не похож. По крайней мере, пока он в состоянии беты, в самом начале своего жизненного цикла.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Онлайн-курс "Продуктова аналітика" від Laba.
Станьте універсальним аналітиком, опанувавши 20+ інструментів для роботи з будь-яким продуктом.
Дізнатись більше про курс

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Топ-5 самых популярных блогеров марта

PHP Developer в ScrumLaunch
Всего просмотровВсего просмотров
2434
#1
Всего просмотровВсего просмотров
2434
Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсего просмотров
113
#2
Всего просмотровВсего просмотров
113
Career Consultant в GoIT
Всего просмотровВсего просмотров
95
#3
Всего просмотровВсего просмотров
95
CEO & Founder в Trustee
Всего просмотровВсего просмотров
94
#4
Всего просмотровВсего просмотров
94
Рейтинг блогеров

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: