Створюйте ефективні підказки для 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 створити повну головоломку для пошуку слів, розбийте її на частини:
Write a function to generate a 10 by 10 grid of lettersWrite a function to find all words in a grid of letters, given a list of valid wordsWrite a function that uses the previous functions to generate a 10 by 10 grid containing at least 10 wordsUpdate 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 генерувати якісний код, який відповідає вашим потребам. Повторення підказок і розуміння того, як оцінювати пропозиції, ще більше покращать ваш досвід розробки, дозволяючи вам ефективно використовувати допомогу штучного інтелекту, зберігаючи при цьому контроль над процесом кодування.