Transcription
Одной из замечательных особенностей GitHub Copilot для VS Code являются пользовательские инструкции. Они помогают вам точно настроить ответы от Copilot, одновременно сокращая объем вводимых подсказок. Давайте посмотрим, как это работает.
GitHub Copilot сокращает время, которое вам, как программисту, требуется для поиска ответов. Просто спросите Copilot. Здесь я пытаюсь узнать больше о хвостовой рекурсии, и Copilot отлично справляется с объяснением того, как это работает.
Это выглядит хорошо, но возвращаемый код... ну, это не совсем мой стиль. Мне не нравится пробел, и у нас немного другое именование переменных здесь, в моей компании. Так что давайте исправим это с помощью пользовательских инструкций.
Чтобы добавить их, мне просто нужно добавить каталог с именем `.github`, а внутри него добавить файл markdown с именем `copilot-instructions.md`. Это простой документ markdown, который может использовать вся команда. У меня есть фрагмент кода здесь с моими стандартными инструкциями для JavaScript, поэтому я добавлю его прямо сюда. У меня есть мои соглашения об именовании переменных и отступы для людей, использующих только два пробела.
С установленными пользовательскими инструкциями я получу не только лучший ответ, но и смогу написать более короткую подсказку, поскольку инструкции предоставляют контекст для каждого запроса в чате. Когда я отправляю запрос в GitHub Copilot, файл пользовательских инструкций добавляется в начало запроса, и Copilot оценит это, а также подсказку, которую я написал.
И давайте взглянем на этот ответ. Гораздо лучше. Соблюдаются соглашения об именовании переменных, мой код имеет правильные отступы, и мне не нужно тратить время на создание идеальной подсказки. Я могу зафиксировать эти инструкции также в своем репозитории Git, чтобы моя команда могла использовать их в будущем.
Вы также можете настраивать другие аспекты ответов Copilot, включая тон, юмор, акцент, практически все. Давайте повеселимся и включим немного австралийского акцента. Очень мило.
Если вы хотите увидеть, какие вещи вы можете делать с пользовательскими инструкциями, посмотрите вокруг на GitHub. Вот инструкции, которые команда VS Code использует для создания VS Code. Вы можете сделать так много, чтобы сделать Copilot своим собственным. Идите, исследуйте и повеселитесь.
Многие люди этого не знают, но если вы откроете панель управления исходным кодом в VS Code и наведете курсор на значок искры, вы увидите, что можете использовать GitHub Copilot для создания сообщения коммита за вас. Он делает это, используя Git, чтобы увидеть, какие входящие изменения, а затем суммируя эти изменения, генерируя сообщение.
Из моего последнего коммита это работает довольно хорошо. Это немного туманно, может не охватывать все, и если я работаю в большой команде, скорее всего, у нас будет стиль сообщения коммита, который мне нужно будет использовать. Так что, хотя это и несколько полезно, это может подойти не всем.
Если, конечно, мы не перехватим генерацию сообщения коммита и не добавим наши собственные инструкции по стилю, что мы можем сделать, перезаписав некоторые настройки в VS Code. Здесь я использую команду `Copilot` для открытия настроек рабочей области и добавления конкретных инструкций для Copilot при генерации сообщения коммита, добавляя стиль и, конечно же, эмодзи.
Теперь давайте вернемся и перегенерируем наше сообщение. Посмотрите на это. Гораздо больше деталей и, что более важно, крутые эмодзи, чтобы скрасить день команды. Теперь наше сообщение читается так, как ожидает моя команда, и мне не нужно тратить время, просматривая каждое изменение, пытаясь вспомнить, что я сделал.
Один из самых больших способов сэкономить время при использовании GitHub Copilot с VS Code — это настройка пользовательских инструкций для всех функций GitHub Copilot в VS Code. Сначала я добавлю `settings.json` в свою рабочую область. Я много использую пользовательские инструкции, поэтому я настроил некоторые фрагменты, которые могу повторно использовать для каждого проекта, который я делаю. У меня есть один для генерации кода, другой для сообщений коммита Git, один для обзора и один для генерации тестов. Каждый из них имеет свою собственную настройку, которая входит в файл `vscode-settings.json`, который переопределяет внутренние настройки VS Code.
После добавления я могу увидеть каждую настройку здесь, в файле, и я могу изменить ее по мере необходимости. Давайте сделаем это в действии. Я открою свой класс пользователя здесь, в своем проекте, и попрошу Copilot провести обзор кода для меня, прежде чем я зафиксирую это в своей рабочей ветке и открою PR. Это сэкономит моей команде так много времени, надеясь поймать мелочи, которые замедлят обзор.
И вот наша первая рекомендация. Ах да, одинарные кавычки. Это ведь стиль руководства ESLint, не так ли?
Мы также можем использовать GitHub Copilot для генерации тестов для файла, который в данный момент открыт в редакторе. Здесь я использую команду `test` в окне чата, чтобы увидеть, какие тесты рекомендует Copilot для моего класса пользователя. Он будет использовать мои пользовательские инструкции по генерации тестов, создавая тесты с использованием моего предпочтительного фреймворка тестирования, а также убедившись, что используется подход AAA: Arrange, Act, and Assert.
И вот оно. Целевые пользовательские инструкции чрезвычайно мощны в VS Code и делают работу со встроенными функциями GitHub Copilot намного более эффективной и применимой для вашей команды.
Я работаю с целевыми пользовательскими инструкциями в своем текущем проекте, которые представляют собой простые текстовые подсказки для каждой функции Copilot в VS Code. Я хочу получить здесь гораздо больше деталей, поэтому я вставлю некоторые документы, которые я создал для своего проекта, включая стили кода, стили базы данных и спецификацию для текущего спринта, над которым я работаю.
Теперь вместо текстовой настройки в моем `settings.json` я изменю ее на `file` для этой задачи. Я буду работать с `Copilot edits`, которые не только будут генерировать код для меня, но и создавать и редактировать файлы. Я добавлю простую подсказку с запросом схемы SQL для SQLite.
Посмотрите, насколько блестяще туманна эта подсказка. Когда я запускаю эту подсказку, Copilot на секунду задумывается, а затем показывает мне, что он использует ссылки на файлы, которые я указал в качестве контекста. Затем он подробно покажет, как он готовит ответ для меня. И подождав всего минуту, мы получаем нашу схему SQL.
Снова Copilot объясняет, почему он сделал то, что сделал, но просматривая здесь, я вижу, что это довольно близко к тому, что я хочу видеть. Теперь Copilot не идеален. Я использую Claude Sonnet 3.5, который очень хорош в генерации кода, но всегда полезно проверить и просмотреть результат.
О, но здесь есть еще так много всего, что мы можем сделать. Этот SQL-файл — золото, когда дело доходит до пользовательских инструкций. Давайте снова откроем наш `settings.json` и добавим его в качестве ссылки на файл для генерации кода. Верно, пользовательские инструкции не обязательно должны быть написанным языком, они могут быть кодом, например SQL.
Теперь, когда я добавил схему SQL, я могу делать еще более крутые вещи, например, генерировать схему Prisma. Что ж, просматривая сгенерированную схему Prisma, это выглядит отлично. Если бы я попытался написать это вручную, это заняло бы у меня довольно много времени, но с Copilot и пользовательскими инструкциями я на 90% пути.
Теперь идеально ли это? Может быть, нет, но это близко, и я сэкономил много времени. Спасибо за просмотр, и, как всегда, удачного кодирования.