Ознайомтеся з найкращими практиками GitHub Copilot
GitHub Copilot для Visual Studio Code допомагає розробникам писати код швидше та з меншою кількістю помилок.
Однак GitHub Copilot — це AI-парний програміст, а не програміст. Щоб отримати максимум від GitHub Copilot, потрібно дотримуватися найкращих практик.
Обирайте правильний інструмент GitHub Copilot для цієї роботи
Хоча функції завершення коду GitHub Copilot і чат GitHub Copilot мають спільні функції, ці два інструменти найкраще використовувати в різних умовах.
Завершення коду надають найбільше значення, коли вони звикли:
- Заповнюйте фрагменти коду, імена змінних і функції під час їх написання.
- Створити повторюваний код.
- Створюй код із вбудованих приміток природною мовою.
- Створення тестів для розробки на основі тестів.
Альтернативно, чат-функції GitHub Copilot дають найбільшу цінність, коли вони звикли до:
- Відповідайте на запитання про код природною мовою.
- Створюйте великі розділи коду, а потім ітеруйте його відповідно до своїх потреб.
- Виконуйте конкретні завдання, використовуючи учасників чату, слеш-команди та змінні чату. Учасники чату (наприклад,
@vscodeабо@terminal) задають контекст для запиту, слеш-команди (наприклад,/explainабо/fix) передають ваш намір, а змінні чату (наприклад,#fileабо#codebase) зосереджуються Copilot на конкретному контексті. Різні учасники та команди доступні на різних платформах GitHub Copilot Chat. - Виконання завдання як певної особи. Наприклад, ви можете сказати GitHub Copilot Chat, що це старший розробник 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 Chat
Коли ви використовуєте чат-функції 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 Chat у своєму IDE, відкрийте файл(и) або виділіть код, який хочете, щоб GitHub Copilot посилався. Використовуйте учасників чату, скісні риски та змінні чату в запитах, щоб визначити контекст. Наприклад, вкажіть, на які файли має посилатися GitHub Copilot Chat.
Використання учасників чату, команд скісної риски та змінних чату
Учасники чату призначені для збирання додаткового контексту щодо бази коду або певного домену чи технології. Коли ви вказуєте відповідного учасника, GitHub Copilot Chat може знайти та надати кращу інформацію для надсилання на бекенд GitHub Copilot. Наприклад, використовуйте @vscode, коли ставите питання про Visual Studio Code функції та API.
Slash-команди допомагають 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.