GitHub показал, как Copilot упрощает модернизацию кода

GitHub опубликовал материал о том, как использовать GitHub Copilot для модернизации старых проектов и работы с крупными изменениями в кодовой базе с помощью «стеков» сессий и pull request’ов.

Автор, директор по работе с разработчиками Cassidy, рассказывает, как обновляла свой личный проект, созданный ещё в конце 2014 года. Приложение работало как личная панель с календарями, умными устройствами и задачами, но его фронтенд-зависимости были устаревшими: React 15, Less и старая версия react-bootstrap. Попытки обновить проект до появления ИИ уже предпринимались, но останавливались из‑за объёма и запутанности изменений.

Для новой попытки модернизации Cassidy подключила репозиторий к приложению GitHub Copilot и начала работу в режиме Plan. Она составила подробный промпт, уточнила план с помощью ИИ‑моделей и, получив удовлетворяющий её план изменений, запустила автоматические правки проекта через Copilot.

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

По запросу автора GitHub Copilot создал новую сессию, закрыл прежний pull request и перенёс принятые стилистические решения в ветку dev. Это позволило продолжать работу с более подходящей базой кода, не теряя результатов прошлых итераций.

Во время тестирования Cassidy заметила в консоли старые предупреждения, связанные с методами findDOMNode и componentWillReceiveProps. Эти вызовы уже почти не использовались в её коде, но оставались в библиотеке react-bootstrap. В режиме Plan она снова обратилась к Copilot, чтобы оценить варианты: обновление библиотеки или полный отказ от неё.

ИИ предложил план с объяснением плюсов и минусов и рекомендовал полностью заменить react-bootstrap. Однако такое изменение выходило за рамки текущего набора задач. Чтобы избежать чрезмерного расширения объёма работ, Cassidy разбила его на отдельные этапы и создала для этого новую сессию в Copilot.

Ключевым моментом материала стало использование «стеков» сессий и «стеков» pull request’ов. В GitHub стеком называется серия pull request’ов в одном репозитории, где каждый запрос на слияние направлен в ветку предыдущего, образуя упорядоченную цепочку, которая в итоге попадает в основную ветку. В описанном кейсе последовательность сессий Copilot соответствовала такой же последовательности связанных pull request’ов.

По словам Cassidy, сочетание GitHub Copilot, планирования через ИИ и стеков pull request’ов значительно упростило обновление старой кодовой базы и сделало процесс поставки изменений заметно комфортнее.

GitHub рекомендует разработчикам, которые также хотят модернизировать свои проекты, попробовать подобный подход: использовать стеки pull request’ов в репозиториях на GitHub и стеки сессий в приложении GitHub Copilot для поэтапного внесения крупных изменений.

Источник: блог GitHub.

Читать новости ИИ и технологий в Telegram.


Оцените статью
Gimal-Ai