Изучите рекомендации по GitHub Copilot

Завершено

GitHub Copilot для Visual Studio Code помогает разработчикам быстрее писать код и с меньшим количеством ошибок.

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

Выберите правое средство GitHub Copilot для задания

Хотя функции завершения кода GitHub Copilot и функции чата GitHub Copilot используют некоторые функции, эти два средства лучше всего используются в различных обстоятельствах.

Завершения кода предоставляют наибольшее значение, когда они используются:

  • Дополняйте фрагменты кода, названия переменных и функций во время их написания.
  • Создайте повторяющийся код.
  • Создайте код из встроенных комментариев на естественном языке.
  • Создайте тесты для разработки, управляемой тестами.

Кроме того, функции чата GitHub Copilot предоставляют наибольшее значение при использовании:

  • Ответы на вопросы о коде на естественном языке.
  • Создайте большие разделы кода, а затем выполните итерацию этого кода в соответствии с вашими потребностями.
  • Выполните конкретные задачи с помощью участников чата, команд со слэшами и переменных чата. Участники чата (например, @vscode или @terminal) задают контекст для запроса, команды со слэшем (например, /explain или /fix) передают ваше намерение, а переменные чата (например, #file или #codebase) помогают Copilot сосредоточиться на определенном контексте. На различных платформах GitHub Copilot Chat доступны разные участники и команды.
  • Выполните задачу в качестве конкретной личности. Например, вы можете сообщить GitHub Copilot Chat, что это старший разработчик C++, который очень заботится о качестве кода, удобочитаемости и эффективности. После установки persona вы можете попросить GitHub Copilot проверить код.

Извлеките максимум из встроенных предложений GitHub Copilot

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

Предоставление контекста для GitHub Copilot

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

Открытие файлов

Для завершения кода GitHub Copilot просматривает файлы, открытые в редакторе, чтобы установить контекст и создать соответствующие предложения. Открытие связанных файлов в Visual Studio Code при использовании GitHub Copilot помогает определить контекст и позволяет GitHub Copilot увидеть большее изображение проекта.

Комментарий верхнего уровня

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

Соответствующие включения и ссылки

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

Значимые имена функций

Как и метод fetchData(), который много не скажет вашему коллеге (или тебе после нескольких месяцев), fetchData() не поможет GitHub Copilot понять ваш код. Использование значимых имен функций помогает GitHub Copilot генерировать предложения, которые соответствуют вашим желаниям.

Комментарии конкретных и хорошо ограниченных функций

Имя функции может быть таким описательным, не будучи слишком длинным. Примечания к функциям могут помочь дополнить сведения, которые могут потребоваться GitHub Copilot.

Prime GitHub Copilot с примером кода

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

Будьте последовательны и поддерживайте высокий уровень качества

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

Всегда поддерживать высокий стандарт качества требует дисциплины. Особенно, когда вы кодируете на ходу, чтобы что-то заработало. Может быть полезно отключить автодополнения GitHub Copilot в режиме кодирования. Вы можете временно отключить завершения из меню состояния GitHub Copilot (доступно из строки состояния Visual Studio Code).

Извлеките максимум из чата Copilot GitHub

При использовании функций чата GitHub Copilot можно выполнить несколько действий для оптимизации взаимодействия.

Запустите общий, а затем получите конкретный

При написании запроса на GitHub Copilot сначала предоставьте GitHub Copilot широкое описание цели или сценария. Затем укажите все определенные требования. Рассмотрим следующие запросы:

  1. Напишите функцию, которая сообщает мне, если число является простым.
  2. Функция должна принимать целое число и возвращать значение true, если целое число является простым.
  3. Функция должна вызвать ошибку, если входные данные не является положительным целым числом.

Примеры

Используйте примеры, чтобы помочь GitHub Copilot понять, что вы хотите. Можно указать примеры входных данных, примеры выходных данных и примеры реализации.

Разорвать сложные задачи на более простые задачи

Если вы хотите, чтобы GitHub Copilot выполнил сложную или большую задачу, разбейте её на несколько простых и небольших задач. Например, вместо того чтобы попросить GitHub Copilot создать головоломку поиска слов, разбейте процесс на более мелкие задачи и затем попросите GitHub Copilot выполнить их по одному.

  1. Напишите функцию для создания сетки размером 10 на 10 из букв.
  2. Напишите функцию, чтобы найти все слова в сетке букв, учитывая список допустимых слов.
  3. Напишите функцию, которая использует предыдущие функции для создания сетки 10 на 10 букв, содержащей по крайней мере 10 слов.
  4. Обновите предыдущую функцию, чтобы распечатать сетку букв и 10 случайных слов из сетки.

Избегайте неоднозначности

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

Указание соответствующего кода

Если вы используете GitHub Copilot чат в интегрированной среде разработки, откройте файлы или выделите код, на который нужно ссылаться GitHub Copilot. Используйте участников чата, команды со слэшем и переменные чата в запросах для определения контекста. Например, укажите, какие файлы GitHub Copilot Chat должны ссылаться.

Использование пользователей чата, команд со слэшем и переменных чата

Участники чата предназначены для сбора дополнительных контекстов по поводу базы кода или конкретной области или технологии. При указании соответствующего участника GitHub Copilot Chat может найти и предоставить более качественную информацию для отправки в бэкэнд GitHub Copilot. Например, используйте @vscode при появлении вопросов о функциях и API Visual Studio Code.

Команды слэш помогают GitHub Copilot Chat понять ваш замысел, когда вы задаете вопрос. Вы изучаете кодовую базу (/explain), хотите помощи в устранении проблемы (/fix) или создаете тестовые случаи (/tests)? Предоставив GitHub Copilot Chat знать, что вы пытаетесь сделать, он может настроить свой ответ на задачу и предоставить полезные команды, параметры и фрагменты кода.

Участники чата, такие как @terminal или @vscode, могут вносить вклад в переменные чата, предоставляющие контекст для конкретного домена. Вы можете ссылаться на переменную чата в запросе чата с помощью символа # . Переменные чата можно использовать для более конкретного контекста запроса.

Например, переменная чата #file позволяет ссылаться на определенные файлы из рабочей области в запросе чата. Это помогает сделать ответы из GitHub Copilot Chat более релевантными к коду, предоставив контекст о файле, с которым вы работаете. Вы можете задавать такие вопросы, как "Can you suggest improvements to #file:package.json?" или "How do I add an extension in #file:devcontainer.json?". С помощью переменной #file можно получить более целевые и точные ответы от GitHub Copilot.

Экспериментируйте и повторяйте

Если вы не получите нужный результат, измените запрос и попробуйте снова. Обратитесь к предыдущему ответу в следующем запросе. Вы также можете удалить предыдущий ответ и начать сначала.

Поддерживайте актуальность истории

GitHub Copilot Chat использует историю чатов для получения контекста о вашем запросе. Чтобы убедиться, что GitHub Copilot использует соответствующую историю чата:

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

Следуйте рекомендациям по написанию кода

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

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

Сводка

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