Введение
Технический долг накапливается в каждой кодовой базе: дублирующий код, отсутствующие тесты, устаревшие зависимости и несогласованные паттерны. Эти проблемы могут накапливаться, поскольку разработка функций обычно получает более высокий приоритет. В этом уроке объясняется, как GitHub Copilot можно систематически справляться с техническим долгом, не жертвуя скоростью работы функций.
Для кого этот туториал
Этот туториал разработан для того, чтобы помочь инженерным командам и техническим руководителям снизить технический долг, сохраняя при этом темп внедрения новых функций. Вам следует иметь:
- Подписка Copilot с доступом к Copilot облачный агент
- Admin access как минимум к одному репозиторию
- Знакомство с рабочим процессом разработки вашей команды
Что вы будете делать
К концу этого учебника вы узнаете о:
- Использование Copilot для реализации исправлений в моменте
- Использование Copilot облачный агент средств для масштабных задач по очистке
- Создание индивидуальных инструкций в Copilot соответствии со стандартами вашей команды
- Измерение влияния Copilot на ваш технический долг
Понимание проблемы технического долга
Прежде чем начинать сокращать технический долг в коде, стоит уделить время, чтобы определить, с какими видами задолженности ваша команда сталкивается чаще всего.
Распространённые типы технического долга включают:
-
**Дублирование кода** — одна и та же логика, реализованная в нескольких местах -
**Отсутствующие тесты** — функции без достаточного покрытия тестов -
**Устаревшие зависимости** — библиотеки отстают от текущих релизов на несколько версий -
**Непоследовательные паттерны** — разные подходы к одной и той же задаче в вашей кодовой базе -
**Устаревший код** — старый код, который работает, но не соответствует современным стандартам
Стоимость технического долга со временем накапливается:
- Старшие инженеры тратят время на рутинные обновления вместо архитектурного проектирования
- Обзоры кода становятся длиннее, поскольку рецензенты спорят о непоследовательных закономерностях
- Новым разработчикам требуется больше времени на адаптацию из-за запутанной организации кода
- Риск развертывания увеличивается по мере накопления уязвимостей устаревших зависимостей
Использование Copilot в вашем IDE для актуальных решений
Лучший способ избежать накопления технической задолженности в вашей кодовой базе — это предотвратить его попадание в кодовую базу изначально.
Если во время разработки возникает технический долг, немедленно исправьте его с помощью Copilot IDE.
Быстрый рабочий процесс рефакторинга
-
Работая в IDE, выделяйте код, который требует улучшения.
-
Открыть Копилот Чат в IDE.
-
Попросите Copilot рефакторить код. Рассмотрим пример.
Extract this into a reusable helper and add error handlingStandardize this logging format to match our patternAdd null checks for all optional parametersReplace this deprecated API call with the current version
-
Ознакомьтесь с предлагаемыми изменениями.
-
Примите изменения или попросите Copilot изменить подход.
-
Проведите тесты, чтобы убедиться, что изменения работают правильно.
Пример: Стандартизация обработки ошибок
Если вы обнаружите непоследовательную обработку ошибок — например:
// Highlight this code
try {
await fetchData();
} catch (e) {
console.log(e);
}
Попросите Copilot улучшить код — например:
Refactor this to use structured logging and proper error handling
// Highlight this code
try {
await fetchData();
} catch (e) {
console.log(e);
}
Refactor this to use structured logging and proper error handling
Refactor this to use structured logging and proper error handling
Copilot Можно предложить:
try {
await fetchData();
} catch (error) {
logger.error('Failed to fetch data', {
error: error.message,
stack: error.stack,
timestamp: new Date().toISOString()
});
throw error;
}
Примечание.
Этот ответ — пример. Копилот Чат Ответы не детерминированы, поэтому вы можете получить другой ответ, если запустить тот же запрос с тем же кодом.
Применяя подход исправления в моменте, вы помогаете избежать добавления некачественного кода в вашу кодовую базу и избегаете возникновения проблемы с накопившимся, который, возможно, так и не будет решен.
Для получения дополнительной информации об использовании Copilot в вашем IDE смотрите Задавать вопросы GitHub Copilot в вашем IDE.
Использование Copilot облачный агент для крупномасштабного рефакторинга
Некоторые задачи по рефакторингу слишком велики, чтобы их выполнить, пока все в команде заняты разработкой новых функций. В такой ситуации вы можете Copilot облачный агент самостоятельно выполнять эти задачи. Человеческие усилия по-прежнему понадобятся — минимум для рассмотрения предлагаемых изменений Copilot облачный агент — но Copilot выполнение основной части работы позволит вам проводить масштабный рефакторинг с гораздо меньшим влиянием на продуктивность вашей команды.
Когда следует использовать Copilot облачный агент
Используйте Copilot облачный агент для задач, которые:
- Трогайте множество файлов в своей кодовой базе
- Требуется систематические изменения (например, удаление старых флагов функций)
- Требуется тщательное тестирование, но реализовать их просто
- Если делать это вручную, это прерывает разработку функций
Вот некоторые примеры.
- Обновления Framework, затрагивающие 50+ файлов
- Удаление устаревших флагов функций
- Переход на строгий TypeScript
- Обновление версий зависимостей
- Стандартизация импортных шаблонов
Рабочий процесс для Copilot облачный агент
-
Создайте проблему, описывающую GitHub задачу рефакторинга.
Будьте конкретны в том, что нужно изменить. Рассмотрим пример.
Remove all feature flags marked for cleanup in Q2. These flags are: - `enable_new_dashboard` - `beta_export_feature` - `experimental_search` All three flags are enabled by default in production. Remove the flag checks and keep the "enabled" code path. -
Передайте проблему пользователю Copilot .
-
Copilot облачный агент будет:- Настройка среды разработки
- Откройте draft pull request
- Внесите необходимые изменения в код
- Запуск тестов
- Завершить запрос на рассмотрение
- Запросите пересмотр запроса на пулл-запрос
-
Проверяйте pull request так же, как если вы сделаете pull-request, поднёсшийся человеком.
-
Оставляйте комментарии, если нужны изменения —Copilot облачный агент обновлю pull request на основе ваших отзывов.
-
Повторяйте этот процесс, пока работа не будет выполнена правильно.
-
Одобрите и объедините pull request.
Дополнительные сведения см. в разделе [AUTOTITLE и Просьба к GitHub Copilot создать pull request](/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs).
Защитные перила
Copilot облачный агент Работает с встроенными мерами безопасности:
- Он может продвигаться только на собственные
copilot/*ветви - Он не может объединять pull requests — требуется ваше одобрение
- Все коммиты логируются и подлежат аудиту
- Ваши существующие защиты ветвей остаются активными
- Проверки CI/CD проводятся перед слиянием кода
Создание индивидуальных инструкций для вашей команды
Индивидуальные инструкции помогают Copilot понять стандарты и шаблоны кодирования вашей команды. Это гарантирует, что предложения соответствуют вашим ожиданиям с самого начала.
Настройка пользовательских инструкций
- В вашем репозитории создайте файл с именем
.github/copilot-instructions.md. - Добавьте стандарты программирования вашей команды в чёткие и понятные заявления — например, используя маркированные списки.
- Зафиксируйте файл в свой репозиторий.
Примеры пользовательских инструкций
Вот пример эффективных индивидуальных инструкций:
## Our Standards
- Use structured logging, not console.log
- Sanitize user input before database queries
- Check for null/undefined on all optional parameters
- Keep functions under 50 lines (extract helpers if needed)
- Every public function needs a test
- Flag any loops that might trigger N+1 queries
## Error Handling
- Always use try-catch blocks for async operations
- Log errors with context (user ID, request ID, timestamp)
- Never swallow errors silently
- Return appropriate HTTP status codes
## Testing Requirements
- Unit tests for all business logic
- Integration tests for API endpoints
- Mock external services in tests
- Test both success and failure paths
Для подробной информации по написанию индивидуальных инструкций смотрите Добавление пользовательских инструкций репозитория для GitHub Copilot.
Преимущества индивидуальных инструкций
С индивидуальными инструкциями:
-
Copilot Советует кодировать, следуя вашим шаблонам - Обзоры кода становятся быстрее, с меньшим количеством обсуждений изменений стиля
- Новые члены команды учатся вашим стандартам через Copilot рекомендации
- Согласованность улучшается во всей вашей кодовой базе
Проведение пилотной программы
Начните с малого, чтобы подтвердить Copilotвлияние вашего технического долга, прежде чем широко его распространять.
Неделя 1: Подготовка и установление базовых показателей
-
Убедитесь, что все участники пилота имеют Copilot включённый доступ.Copilot облачный агент
-
Посчитайте технические задолженности в вашем списке задолженности:
- Количество «технологических долгов», «обязанностей» или аналогичных обозначенных вопросов
- Количество устаревших зависимостей
- Количество файлов, не прошедших проверку линтера
-
Отслеживайте текущие метрики:
- Среднее время от создания pull request до слияния для рефакторинга PR
- Среднее количество раундов обзора на один PR рефакторинга
-
Создайте свой первый файл
.github/copilot-instructions.mdс 3–5 ключевыми стандартами.
Недели 2–4: Запустите пилот
-
Выберите 5–10 репозиториев для вашего пилота.
-
Выберите 1–2 конкретные задачи для решения. Рассмотрим пример.
- Дублирование кода в определённой области
- Отсутствующие тесты на часто меняемых файлах
- Устаревшие зависимости
-
Используйте Copilot свой IDE для быстрых решений при возникновении проблем.
-
Назначьте более крупные задачи по уборке .Copilot облачный агент
-
Внимательно проверяйте все Copilotсгенерированные PR.
-
Оставляйте обратную связь по рекомендациям, которые помогут Copilot понять свои предпочтения.
Неделя 5: Оценка результатов
После пилотного эпизода измерьте свои результаты:
-
Насколько быстрее рефакторинг пулл-заявок объединяется?
-
Сколько раундов проверки сейчас требуется?
-
Какие типы предложений по изменению кода, сделанные Copilot облачный агент через pull requests, чаще всего принимали разработчики?
-
Какие предложения требовали наибольшей доработки?
-
Улучшаются ли ваши технические показатели долга?
- Уменьшаются предупреждения о линтере?
- Увеличивается ли покрытие тестов?
- Более актуальные версии зависимости?
Обновите свои индивидуальные инструкции, исходя из того, что вы узнали о том, какие рекомендации помогли Copilot больше всего.
Измерение успеха
Отслеживайте конкретные показатели, чтобы понять Copilot, что они влияют на ваш технический долг.
Метрики скорости
Отслеживайте, как Copilot влияет на скорость разработки:
- Время закрыть технические долговые эмиссии (цель: сокращение на 30–50%)
- Количество технических запросов на выплату долгов в неделю (цель: увеличение 2–3 раза)
- Среднее количество циклов проверки на один pull request на рефакторинг (оцените, увеличилось ли это или уменьшилось)
Метрики качества
Обеспечьте улучшение качества вместе со скоростью:
- Количество предупреждений по линтеру (это должно снизиться)
- Процент покрытия тестов (это должно расти к росту)
- Количество производственных инцидентов, связанных с рефакторингом кода (оцените, изменилось ли это)
Удовлетворенность инженеров
Регулярно опрашивайте свою команду:
- Инженеры тратят меньше времени на плановое обслуживание?
- Обзоры кода больше сосредоточены на архитектуре, а не на стиле?
- Адаптация для новых членов команды быстрее?
Устранение неполадок
Copilot предполагает неправильные изменения
Если Copilot вы постоянно рекомендуете код, который не соответствует вашим потребностям:
- Ознакомьтесь с инструкциями — они могут быть слишком расплывчатыми или противоречивыми
- Дайте более конкретный контекст в своих подсказках
- Добавьте примеры хорошего кода в свои пользовательские инструкции
- Оставляйте подробную обратную связь в отзывах pull request, чтобы Copilot облачный агент решить проблемы
Pull-запросы слишком большие для просмотра
Если Copilot облачный агент создаётся pull request, которые сложно проверить:
- Разбивайте крупные задачи на мелкие, сфокусированные задачи
- Попросите Copilot облачный агент работать с одним файлом или каталогом за раз
- Используйте более конкретные описания проблем
Изменения пробных тестов
Если рефакторинг приводит к неудачам испытаний:
- Убедитесь, что ваш тестовый набор работает надёжно перед использованием Copilot облачный агент
- Внимательно изучите Copilot изменения перед слиянием
- Попросите Copilot обновить тесты вместе с изменениями в коде
Внедрение команды идёт медленно
Если ваша команда не использует Copilot их для технического долга:
- Делитесь историями успеха от первых пользователей
- Продемонстрируйте экономию времени на командных встречах
- Начните с самых раздражающих технических заданий по долгам
- Сделайте создание индивидуальных инструкций командной деятельностью
Conclusion
В этом уроке вы узнали, как Copilot систематически сокращать технический долг. Теперь вы знаете, как:
- Исправьте технический долг немедленно с помощью Copilot вашего IDE
- Назначайте крупные задачи по рефакторингу Copilot облачный агент
- Создайте индивидуальные инструкции, соответствующие Copilot стандартам вашей команды
- Проведите пилотную программу для подтверждения подхода
- Влияние этой меры Copilotна технический долг
Автоматизируя рутинные задачи по рефакторингу и обслуживанию, Copilot вы освобождаете возможность сосредоточиться на архитектуре, разработке функций и другой важной работе.
Быстрый опрос
После прочтения этого руководства, вы уверены, что сможете использовать Copilot его для снижения технического долга в коде?
<a href="https://docs.github.io/success-test/yes.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline">
<span>Да</span></a><a href="https://docs.github.io/success-test/no.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline"><span>No</span></a>
Дальнейшие шаги
-
**Расширьте пилотный** проект: Внедрите его в больше репозиториев, исходя из результатов пилота. -
**Автоматизация обновлений зависимостей**: создание повторяющихся проблем для Copilot облачный агент обработки обновлений зависимостей. -
**Постройте очередь рефакторинга**: отмечайте проблемы в вашем бэклоге как хорошие Copilot , а затем регулярно назначайте Copilot их для работы. -
**Делитесь лучшими практиками**: документируйте успешные задания и индивидуальные инструкции для вашей команды.
Дополнительные материалы
-
[автозаголовок](/copilot/using-github-copilot/coding-agent) -
[автозаголовок](/copilot/tutorials/refactoring-code-with-github-copilot) -
[Как использовать GitHub Copilot в вашем IDE: советы, хитрости и лучшие практики](https://github.blog/developer-skills/github/how-to-use-github-copilot-in-your-ide-tips-tricks-and-best-practices/) в GitHub блоге -
[5 способов интегрировать GitHub Copilot облачный агент в ваш рабочий процесс](https://github.blog/ai-and-ml/github-copilot/5-ways-to-integrate-github-copilot-coding-agent-into-your-workflow/) в GitHub блоге