Изучите рекомендации по GitHub Copilot
Расширения GitHub Copilot для Visual Studio Code помогают разработчикам быстрее писать код и с меньшим количеством ошибок.
Однако GitHub Copilot — это помощник-программист с ИИ, а не программист. Чтобы получить большую часть GitHub Copilot инструментов, необходимо следовать рекомендациям.
Выберите правое средство GitHub Copilot для задания
Хотя функции завершения кода GitHub Copilot и функции чата GitHub Copilot используют некоторые функции, эти два средства лучше всего используются в различных обстоятельствах.
Завершения кода предоставляют наибольшее значение, когда они используются:
- Дополняйте фрагменты кода, названия переменных и функций во время их написания.
- Создайте повторяющийся код.
- Создайте код из встроенных комментариев на естественном языке.
- Создайте тесты для разработки, управляемой тестами.
Кроме того, функции чата GitHub Copilot предоставляют наибольшее значение при использовании:
- Ответы на вопросы о коде на естественном языке.
- Создайте большие разделы кода, а затем выполните итерацию этого кода в соответствии с вашими потребностями.
- Выполнение конкретных задач с помощью ключевых слов и навыков. GitHub Copilot Чат использует встроенные ключевые слова (и навыки, предназначенные для обеспечения необходимого контекста) в запросах для быстрого выполнения распространенных задач. Различные типы ключевых слов и навыков доступны на разных платформах чата GitHub Copilot.
- Выполните задачу в качестве конкретной личности. Например, вы можете сообщить GitHub Copilot чату, что это старший разработчик C++, который заботится о качестве кода, удобочитаемости и эффективности. После установления личности вы можете попросить 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).
Получите больше всего из GitHub Copilot чата
При использовании функций чата GitHub Copilot можно выполнить несколько действий для оптимизации взаимодействия.
Запустите общий, а затем получите конкретный
При написании запроса на GitHub Copilot сначала предоставьте GitHub Copilot широкое описание цели или сценария. Затем укажите все определенные требования. Рассмотрим следующие запросы:
- Напишите функцию, которая сообщает мне, если число является простым.
- Функция должна принимать целое число и возвращать значение true, если целое число является простым.
- Функция должна вызвать ошибку, если входные данные не является положительным целым числом.
Примеры
Используйте примеры, чтобы помочь GitHub Copilot понять, что вы хотите. Можно указать примеры входных данных, примеры выходных данных и примеры реализации.
Разорвать сложные задачи на более простые задачи
Если вы хотите, чтобы GitHub Copilot выполнил сложную или большую задачу, разбейте её на несколько простых и небольших задач. Например, вместо того, чтобы попросить GitHub Copilot создать головоломку для поиска слов, разбейте процесс на более мелкие задачи и попросите GitHub Copilot выполнять их по одной.
- Напишите функцию для создания сетки размером 10 на 10 из букв.
- Напишите функцию, чтобы найти все слова в сетке букв, учитывая список допустимых слов.
- Напишите функцию, которая использует предыдущие функции для создания сетки 10 на 10 букв, содержащей по крайней мере 10 слов.
- Обновите предыдущую функцию, чтобы распечатать сетку букв и 10 случайных слов из сетки.
Избегайте неоднозначности
Избегайте неоднозначных терминов. Например, не задавайте вопросы «что делает это», если под "это" может подразумеваться текущий файл, последний ответ GitHub Copilot или определённый блок кода. Вместо того чтобы использовать неоднозначные термины, будьте конкретными: что делает функция createUser?
Указание соответствующего кода
Если вы используете GitHub Copilot чат в интегрированной среде разработки, откройте файлы или выделите код, на который нужно ссылаться GitHub Copilot. Используйте участников чата, команды со слэшем и переменные чата в запросах для определения контекста. Например, укажите, на какие файлы должен ссылаться GitHub Copilot Chat.
Использование пользователей чата, команд со слэшем и переменных чата
Участники чата предназначены для сбора дополнительных контекстов по поводу базы кода или конкретной области или технологии. При указании соответствующего участника GitHub Copilot чат может найти и предоставить более подробную информацию для отправки в серверную часть GitHub Copilot. Например, используйте @workspace когда задаёте вопросы об открытом проекте, или @vscode когда задаёте вопросы о функциях и API Visual Studio Code.
Команды слэш помогают GitHub Copilot Чат понимать ваше намерение, когда вы задаёте вопрос. Вы изучаете кодовую базу (/explain), хотите помощи в устранении проблемы (/fix) или создаете тестовые случаи (/tests)? Предоставив GitHub Copilot чату знать, что вы пытаетесь сделать, он может настроить свой ответ на задачу и предоставить полезные команды, параметры и фрагменты кода.
Участники чата, такие как @workspace или @vscode, могут вносить вклад в переменные чата, предоставляющие контекст для конкретного домена. Вы можете ссылаться на переменную чата в запросе чата с помощью символа # . Переменные чата можно использовать для более конкретного контекста запроса.
Например, переменная чата #file позволяет ссылаться на определенные файлы из рабочей области в запросе чата. Это помогает сделать ответы из GitHub Copilot Чат более релевантными к коду, предоставив контекст о файле, с которым вы работаете. Вы можете задавать такие вопросы, как "Can you suggest improvements to #file:package.json?" или "How do I add an extension in #file:devcontainer.json?". С помощью переменной #file можно получить более целевые и точные ответы от GitHub Copilot.
Экспериментируйте и повторяйте
Если вы не получите нужный результат, измените запрос и попробуйте снова. Обратитесь к предыдущему ответу в следующем запросе. Вы также можете удалить предыдущий ответ и начать сначала.
Поддерживайте актуальность истории
Chat GitHub Copilot использует историю чата для получения контекста вашего запроса. Чтобы убедиться, что GitHub Copilot использует соответствующую историю чата:
- Используйте треды, чтобы начать новый разговор для новой задачи.
- Удалите запросы, которые больше не актуальны или не дали вам желаемого результата.
Следуйте рекомендациям по написанию кода
Если вы не получаете желаемых предложений от GitHub Copilot, убедитесь, что ваш существующий код соответствует передовым практикам и легко читается. Например:
- Используйте согласованный стиль и шаблоны кода.
- Используйте описательные имена для переменных и функций.
- Закомментируйте код.
- Структурируйте код в модульные, ограниченные компоненты.
- Включите модульные тесты.
Сводка
GitHub Copilot — это мощный инструмент, который помогает быстрее писать код и с меньшим количеством ошибок. Тем не менее, чтобы максимально эффективно использовать GitHub Copilot, необходимо следовать лучшим практикам. Выбрав подходящее средство GitHub Copilot для задания, предоставляя контекст и следуя рекомендациям по программированию, вы можете оптимизировать работу с GitHub Copilot.