Створюйте ефективні підказки для GitHub Copilot

Завершено

prompt — це інструкція з природної мови, яка GitHub Copilot підказує, чого ви хочете. Підказки можна використовувати, щоб ставити запитання, передавати запити або описувати завдання.

Наприклад, наступні підказки представляють питання, прохання та опис завдання.

Question: How do I create a button that submits a form?

Request: Add a button that opens a modal dialog. The button should be blue with rounded corners.

Task: Build a product page that displays a product title, product image, product description, and price. Product information should be fetched from the attached ProductsList.json file. The price should be formatted as currency. The page should also include a button to add the product to the cart.

Якість вашого запиту безпосередньо впливає на якість відповіді GitHub Copilot.

З чого складається хороша підказка?

Створення якісних підказок є необхідним для отримання максимальної користі від GitHub Copilot. Наступні стратегії допоможуть вам створювати підказки, які генерують більш точні, релевантні та корисні відповіді.

Почати загальний, а потім отримати конкретні

Пишучи завдання для Copilot, почніть із загального опису вашої мети або сценарію, а потім вкажіть конкретні вимоги. Такий підхід дає Copilot необхідний контекст, водночас забезпечуючи врахування ваших детальних потреб.

Example:

Write a function that tells me if a number is prime.

The function should take an integer and return true if the integer is prime.

The function should error if the input is not a positive integer.

Наведіть конкретні приклади

Приклади — один із найефективніших способів донести свої наміри до Copilot. Ви можете надати приклади вхідних даних, очікувані виходи та навіть приклади реалізацій, щоб допомогти ШІ зрозуміти.

Example:

Write a function that finds all dates in a string and returns them in an array. Dates can be formatted like:

- 05/02/24
- 05/02/2024
- 5/2/24
- 5/2/2024
- 05-02-24
- 05-02-2024
- 5-2-24
- 5-2-2024

Example usage:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")

Expected return: ["11/14/2023", "12-1-23"]

Розбийте складні завдання на простіші кроки

Коли ви стикаєтеся зі складним або великим завданням, розкладіть його на менші, керовані компоненти. Такий підхід призводить до кращих результатів і полегшує налагодження та вдосконалення окремих частин.

Example: Замість того, щоб просити Copilot створити повну головоломку для пошуку слів, розбийте її на частини:

  1. Write a function to generate a 10 by 10 grid of letters
  2. Write a function to find all words in a grid of letters, given a list of valid words
  3. Write a function that uses the previous functions to generate a 10 by 10 grid containing at least 10 words
  4. Update the previous function to print the grid and 10 random words from the grid

Усуньте двозначність

Уникайте розпливчастих посилань і двозначних термінів, які можна тлумачити по-різному. Чітко пояснюйте, про що ви говорите і чого хочете, щоб Copilot робив.

Погані приклади:

  • — Що це означає? (незрозуміло, що означає "це").
  • "Виправити помилку" (не уточнює, яку помилку і як її виправити).

Кращі приклади:

  • "Що робить функція createUser?"
  • "Що робить код у вашій останній відповіді?"
  • "Виправте помилку перевірки в полі введення електронної пошти."

Бібліотечні міркування:

  • Якщо ви користуєтеся незвичайною бібліотекою, опишіть її призначення.
  • Для конкретних бібліотек включіть інструкції імпорту або вкажіть, яку бібліотеку потрібно використовувати.

Надайте релевантний контекст

Допоможіть Copilot зрозуміти структуру та наміри вашого проєкту, ефективно керуючи середовищем розробки.

У вашому IDE:

  • Відкривайте відповідні файли та закривайте непов'язані файли.
  • Виділіть конкретні розділи коду, які ви хочете, щоб Copilot посилався.
  • Використовуйте кнопку «Додати контекст » у перегляді чату, щоб прикріпити конкретні файли, символи або контент робочого простору.
  • Посилайтеся безпосередньо на контекст у вашому запиті з #-посиланнями, такими #file як і #selection.

У Copilot Chat:

  • Посилайтеся на конкретні файли або блоки коду.
  • Додайте відповідну документацію або специфікації.
  • Використовуйте чіткі шляхи до файлів та імена функцій.

Ітерація та уточнення

Не чекайте ідеальних результатів з першого разу. Copilot найкраще працює, коли ви ведете ітеративну розмову, уточнюючи свої запити відповідно до отриманих відповідей.

Стратегії для ітерацій:

  • Якщо використовуються вбудовані пропозиції, видаліть їх і повторіть спробу зі зміненим запитом.
  • У Copilot Chat звертайтеся до попередніх відповідей і попросіть конкретні зміни.
  • Спирайтеся на часткові рішення, вимагаючи поступових поліпшень.

Підтримуйте актуальну історію бесід

Copilot Chat використовує історію розмов для розуміння контексту, тому керуйте цією історією стратегічно.

Практичні поради:

  • Запускайте нові теми для різних завдань або проектів.
  • Видаляйте нерелевантні або неуспішні запити, які можуть заплутати майбутні відповіді.
  • Зосередьте розмови на пов'язаних функціях.

Дотримуйтеся хороших порад із кодування

Якість вашої існуючої кодової бази впливає на здатність Copilot генерувати відповідні пропозиції. Дотримуйтесь високих стандартів у своєму коді, щоб отримати кращу допомогу зі штучним інтелектом.

Фактори якості коду:

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

Note

Ви можете попросити Copilot допомогти покращити якість вашого коду, запитуючи коментарі, рефакторингові пропозиції або розбиваючи великі функції на менші, більш керовані частини.

Хорошими підказками є:

  • Чіткий: Опишіть, що саме ви хочете.
  • Конкретно: Включіть деталі макета, поведінки або стилю.
  • Контекстуальний: посилання на існуючий код або структуру.

Повторення підказок

Якщо початкова відповідь GitHub Copilot не відповідає вашим очікуванням, можливо, доведеться вдосконалити запит. Розглянемо ці стратегії:

  • Відредагуйте запит, щоб бути більш конкретним.
  • Додайте в чат контекст, який уточнює ваші цілі або вимоги.
  • Використовуйте Copilot Chat, щоб ставити додаткові питання, які базуються на попередніх відповідях.

Оцінка та реагування на пропозиції Copilot

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

Коли приймати пропозиції

Прийміть поради Copilot, коли вони:

  • Відповідайте своїм вимогам: код робить саме те, що ви просили.
  • Дотримуйтесь найкращих практик: використовує відповідні шаблони, правила іменування та структуру.
  • Добре структуровані: код читається, підтримується та правильно відформатований.
  • Включіть належну обробку помилок: усунено крайові випадки та потенційні збої.
  • Відповідає стилю вашого проекту: Відповідає існуючим шаблонам і умовностям кодової бази.

Приклад хорошої пропозиції для прийняття:

Оперативне: "Створення функції для перевірки адрес електронної пошти"

Copilot пропонує:

function validateEmail(email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (typeof email !== 'string') {
        throw new Error('Email must be a string');
    }
    return emailRegex.test(email.toLowerCase());
}

Цю пропозицію слід прийняти, оскільки вона включає перевірку введення, обробку помилок і використовує розумний шаблон регулярних виразів.

Коли відхиляти пропозиції

Відхиліть пропозиції Copilot, коли вони:

  • Не звертайтеся до запиту: код вирішує проблему, відмінну від запитуваної.
  • Містити вразливості системи безпеки: використовуйте небезпечні методи або розкривайте конфіденційні дані.
  • Є надмірно складними: прості завдання, що реалізуються з непотрібною складністю.
  • Використовуйте застарілі методи: покладайтеся на застарілі або застарілі API.
  • Недостатня обробка помилок: не враховуйте потенційні сценарії збою.
  • Порушуйте стандарти кодування: не дотримуйтесь усталених практик вашої команди.

Приклад пропозиції про відхилення:

Оперативне: "Створіть функцію безпечної перевірки пароля"

Погана пропозиція:

function validatePassword(password) {
    return password.length > 6;
}

Цю функцію слід відхилити, оскільки вона занадто спрощена для вимог безпеки та не перевіряє надійність пароля належним чином.

Коли потрібно змінювати пропозиції

Змінюйте пропозиції Copilot, коли вони:

  • В основному правильні, але потребують коригування: основна логіка – це звук, але деталі потребують доопрацювання.
  • Потрібні додаткові функції: Базова функціональність хороша, але вимагає вдосконалення.
  • Маєте незначні проблеми зі стилем: код працює, але не відповідає вашим параметрам форматування.
  • Потрібні різні імена змінних: Логіка правильна, але іменування можна було б покращити.
  • Потрібна оптимізація продуктивності: функціональна, але могла б бути більш ефективною.

Приклад пропозиції щодо внесення змін:

Copilot пропонує:

function calculateTotal(items) {
    let total = 0;
    for (let i = 0; i < items.length; i++) {
        total += items[i].price;
    }
    return total;
}

Ваша модифікація для кращої читабельності та сучасного JavaScript:

function calculateTotal(items) {
    return items.reduce((total, item) => total + item.price, 0);
}

Стратегії вдосконалення пропозицій

Якщо пропозиція не зовсім правильна, спробуйте такі підходи:

Уточніть підказку:

  • Додайте більш конкретні вимоги.
  • Включіть приклади очікуваних входів/виходів.
  • Вкажіть стиль програмування або фреймворк, який ви використовуєте.

Запит на внесення змін:

  • «Зробіть попередню функцію надійнішою за допомогою обробки помилок».
  • «Спростіть код, який ви щойно написали».
  • "Додайте типи TypeScript до попередньої функції."

Будуйте поступово:

  • Почніть з базової версії та попросіть про вдосконалення.
  • Додавайте функції по черзі, а не запитуйте все одразу.
  • Перевіряйте кожну ітерацію, перш ніж переходити до наступного вдосконалення.

Tip

Змінюючи пропозиції, дотримуйтесь тих частин, які добре працюють, і конкретизуйте, що потрібно змінити. Це допомагає Copilot зрозуміти ваші вподобання та надати кращі пропозиції щодо майбутнього.

Summary

Створення ефективних підказок для GitHub Copilot є необхідним для максимального використання його потенціалу у програмуванні вібра. Починаючи з загальних описів, надаючи конкретні приклади, розбираючи складні завдання та підтримуючи чітку комунікацію, ви можете допомогти Copilot генерувати якісний код, який відповідає вашим потребам. Повторення підказок і розуміння того, як оцінювати пропозиції, ще більше покращать ваш досвід розробки, дозволяючи вам ефективно використовувати допомогу штучного інтелекту, зберігаючи при цьому контроль над процесом кодування.