Skip to main content
Select language: current language is Russian
Поиск или запрос Copilot
Открыть меню

Использование GitHub Copilot для снижения технической задолженности

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

Введение

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

Для кого этот туториал

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

  • Подписка Copilot с доступом к Copilot облачный агент
  • Admin access как минимум к одному репозиторию
  • Знакомство с рабочим процессом разработки вашей команды

Что вы будете делать

К концу этого учебника вы узнаете о:

  • Использование Copilot для реализации исправлений в моменте
  • Использование Copilot облачный агент средств для масштабных задач по очистке
  • Создание индивидуальных инструкций в Copilot соответствии со стандартами вашей команды
  • Измерение влияния Copilot на ваш технический долг

Понимание проблемы технического долга

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

Распространённые типы технического долга включают:

  •         **Дублирование кода** — одна и та же логика, реализованная в нескольких местах
    
  •         **Отсутствующие тесты** — функции без достаточного покрытия тестов
    
  •         **Устаревшие зависимости** — библиотеки отстают от текущих релизов на несколько версий
    
  •         **Непоследовательные паттерны** — разные подходы к одной и той же задаче в вашей кодовой базе
    
  •         **Устаревший код** — старый код, который работает, но не соответствует современным стандартам
    

Стоимость технического долга со временем накапливается:

  • Старшие инженеры тратят время на рутинные обновления вместо архитектурного проектирования
  • Обзоры кода становятся длиннее, поскольку рецензенты спорят о непоследовательных закономерностях
  • Новым разработчикам требуется больше времени на адаптацию из-за запутанной организации кода
  • Риск развертывания увеличивается по мере накопления уязвимостей устаревших зависимостей

Использование Copilot в вашем IDE для актуальных решений

Лучший способ избежать накопления технической задолженности в вашей кодовой базе — это предотвратить его попадание в кодовую базу изначально.

Если во время разработки возникает технический долг, немедленно исправьте его с помощью Copilot IDE.

Быстрый рабочий процесс рефакторинга

  1. Работая в IDE, выделяйте код, который требует улучшения.

  2. Открыть Копилот Чат в IDE.

  3. Попросите Copilot рефакторить код. Рассмотрим пример.

    • Extract this into a reusable helper and add error handling
    • Standardize this logging format to match our pattern
    • Add null checks for all optional parameters
    • Replace this deprecated API call with the current version
  4. Ознакомьтесь с предлагаемыми изменениями.

  5. Примите изменения или попросите Copilot изменить подход.

  6. Проведите тесты, чтобы убедиться, что изменения работают правильно.

Пример: Стандартизация обработки ошибок

Если вы обнаружите непоследовательную обработку ошибок — например:

// Highlight this code
try {
  await fetchData();
} catch (e) {
  console.log(e);
}

Попросите Copilot улучшить код — например:

Copilot prompt
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 облачный агент

  1. Создайте проблему, описывающую 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.
    
  2. Передайте проблему пользователю Copilot .

  3.        Copilot облачный агент будет:
    
    • Настройка среды разработки
    • Откройте draft pull request
    • Внесите необходимые изменения в код
    • Запуск тестов
    • Завершить запрос на рассмотрение
    • Запросите пересмотр запроса на пулл-запрос
  4. Проверяйте pull request так же, как если вы сделаете pull-request, поднёсшийся человеком.

  5. Оставляйте комментарии, если нужны изменения —Copilot облачный агент обновлю pull request на основе ваших отзывов.

  6. Повторяйте этот процесс, пока работа не будет выполнена правильно.

  7. Одобрите и объедините 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 понять стандарты и шаблоны кодирования вашей команды. Это гарантирует, что предложения соответствуют вашим ожиданиям с самого начала.

Настройка пользовательских инструкций

  1. В вашем репозитории создайте файл с именем .github/copilot-instructions.md.
  2. Добавьте стандарты программирования вашей команды в чёткие и понятные заявления — например, используя маркированные списки.
  3. Зафиксируйте файл в свой репозиторий.

Примеры пользовательских инструкций

Вот пример эффективных индивидуальных инструкций:

## 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: Подготовка и установление базовых показателей

  1. Убедитесь, что все участники пилота имеют Copilot включённый доступ.Copilot облачный агент

  2. Посчитайте технические задолженности в вашем списке задолженности:

    • Количество «технологических долгов», «обязанностей» или аналогичных обозначенных вопросов
    • Количество устаревших зависимостей
    • Количество файлов, не прошедших проверку линтера
  3. Отслеживайте текущие метрики:

    • Среднее время от создания pull request до слияния для рефакторинга PR
    • Среднее количество раундов обзора на один PR рефакторинга
  4. Создайте свой первый файл .github/copilot-instructions.md с 3–5 ключевыми стандартами.

Недели 2–4: Запустите пилот

  1. Выберите 5–10 репозиториев для вашего пилота.

  2. Выберите 1–2 конкретные задачи для решения. Рассмотрим пример.

    • Дублирование кода в определённой области
    • Отсутствующие тесты на часто меняемых файлах
    • Устаревшие зависимости
  3. Используйте Copilot свой IDE для быстрых решений при возникновении проблем.

  4. Назначьте более крупные задачи по уборке .Copilot облачный агент

  5. Внимательно проверяйте все Copilotсгенерированные PR.

  6. Оставляйте обратную связь по рекомендациям, которые помогут 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 блоге
    
Morty Proxy This is a proxified and sanitized view of the page, visit original site.