Управление Copilot с помощью контекста

Разработка программного обеспечения с GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Важность контекста

Разработка программного обеспечения с GitHub Copilot

Важность контекста

Разработка программного обеспечения с GitHub Copilot
Разработка программного обеспечения с GitHub Copilot

Переменная #codebase

$$

#codebase: Выполняет семантический поиск по всему проекту

Пример запроса:

Как реализована аутентификация пользователей? #codebase

Результат:

  • 🔍 Сканирует всю кодовую базу
  • 💻 Включает в ответ соответствующую логику, вызовы функций и настройки конфигурации
Разработка программного обеспечения с GitHub Copilot

Как Copilot понимает вашу кодовую базу

Типы индексов:

  • Локальный индекс: хранится на вашем компьютере
  • Удалённый индекс: для репозиториев, размещённых на GitHub
Разработка программного обеспечения с GitHub Copilot

Проверка типа индекса

Разработка программного обеспечения с GitHub Copilot

Проверка типа индекса

Разработка программного обеспечения с GitHub Copilot

Переменная #changes

$$

#changes: Ссылается на последние изменения в системе контроля версий

Пример запроса:

Могут ли эти изменения нарушить процесс входа? #changes

Когда использовать:

  • 💾 При оценке внесённых изменений в код
Разработка программного обеспечения с GitHub Copilot

Переменная #selection

$$

#selection: Ссылается на выделенные фрагменты кода

Пример запроса:

Можете отрефакторить это? #selection

Когда использовать:

  • 🔧 Для быстрого редактирования
  • 📝 Для точечных запросов
Разработка программного обеспечения с GitHub Copilot

Переменная #fetch

  • Документация 📚, справочник по API 💻, статья в блоге 📰

$$

#fetch: Загружает содержимое веб-страницы

Пример запроса:

Кратко изложи мне эту документацию #fetch https://example.com/docs

Результат:

  • 🌐 Загружает веб-страницу и использует её как контекст
Разработка программного обеспечения с GitHub Copilot

Переменная #files

$$

#files: Прикрепляет конкретные файлы к запросу

Пример запроса:

Проверьте этот файл на наличие проблем с обработкой ошибок? #files:utils/data_loader.py

Результат:

  • 🔍 Анализирует содержимое указанного файла
  • 📄 Включает его в контекст запроса
Разработка программного обеспечения с GitHub Copilot

Другие переменные и инструменты чата

$$

Переменная/инструмент Описание
#search Поиск файлов в текущем рабочем пространстве.
#testFailure Получение информации об ошибках модульных тестов. Полезно при запуске и диагностике тестов.
#problems Добавление проблем и ошибок рабочего пространства из панели «Problems» в контекст. Полезно при исправлении кода и отладке.
#terminalLastCommand Получение последней выполненной команды терминала и её вывода.
#githubRepo Поиск кода в репозитории GitHub.
1 https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools
Разработка программного обеспечения с GitHub Copilot
Разработка программного обеспечения с GitHub Copilot

Построение поэтапного диалога с Copilot

Один сложный запрос:

Добавь интеграцию с PostgreSQL с аутентификацией, персистентностью, сессиями, обработкой ошибок и пулингом соединений

Постепенное усложнение запросов:

  1. Какой подход лучше всего подойдёт для добавления персистентности базы данных? #codebase
  2. Реализуй подключение к базе данных с использованием предложенного подхода
  3. Помоги мне спроектировать схему для классов Task и User
  4. Теперь добавь управление сессиями и базовую обработку ошибок
  5. ...
Разработка программного обеспечения с GitHub Copilot

Создание нового чата для сброса контекста

Разработка программного обеспечения с GitHub Copilot

Создание нового чата для сброса контекста

Разработка программного обеспечения с GitHub Copilot

Разработка программного обеспечения с GitHub Copilot

Давайте потренируемся!

Разработка программного обеспечения с GitHub Copilot

Preparing Video For Download...