9 промтов для GitHub Copilot: от коммитов до code review
GitHub Copilot — это не просто автодополнение кода. Многие разработчики используют его лишь для генерации функций, не догадываясь, что с помощью правильных промтов (подсказок) он может писать осмысленные commit messages, ревьюить пул-реквесты, рефакторить код и даже документировать его. В этой статье я собрал 9 конкретных, готовых к копированию промтов, которые превратят Copilot в полноценного ассистента на каждом этапе разработки.
1. Генерация осмысленного commit message
Для чего: Copilot может проанализировать изменения в файле и написать commit message в стиле Conventional Commits. Это экономит время и делает историю проекта чище.
Промт:
Generate a concise commit message for the following git diff using Conventional Commits format (type: scope - description). Focus only on the most important change.
Пример использования: Выделите diff ваших изменений, вставьте после промта. Copilot выдаст что-то вроде:
feat(auth): add OAuth2 token refresh logic
Совет: Если у вас есть свои правила (например, ссылка на issue), добавьте их в промт: ...and include reference to JIRA-123.
2. Написание тестов для существующей функции
Для чего: Copilot может сгенерировать unit-тесты, проанализировав сигнатуру и тело функции. Это ускоряет покрытие кода тестами.
Промт:
Write comprehensive unit tests using Jest for the following function. Cover edge cases: empty input, null values, boundary conditions, and error handling.
Пример использования: Вставьте функцию:
function divide(a, b) {
if (b === 0) throw new Error('Division by zero');
return a / b;
}
Copilot сгенерирует тесты с describe, it, и проверками на Error.
3. Объяснение сложного кода (code review для новичка)
Для чего: Когда вы видите непонятный блок кода, Copilot может объяснить его на простом языке, как если бы это делал старший разработчик.
Промт:
Explain the following code snippet in simple terms, as if to a junior developer. Break down each step and highlight potential pitfalls.
Пример использования: Вставьте сложную рекурсивную функцию. Copilot опишет алгоритм, укажет на возможный stack overflow и предложит оптимизацию.
4. Code review: поиск багов и уязвимостей
Для чего: Copilot может выступить в роли автоматического ревьюера, находя распространённые ошибки: необработанные исключения, SQL-инъекции, утечки памяти.
Промт:
Review the following code for potential bugs, security vulnerabilities, and performance issues. Provide specific line numbers and suggested fixes.
Пример использования: Вставьте код с неэкранированным SQL-запросом. Copilot укажет: «Line 5: SQL injection risk, use parameterized query».
5. Рефакторинг: улучшение читаемости и производительности
Для чего: Copilot может предложить более элегантную или быструю реализацию существующего кода, сохраняя ту же логику.
Промт:
Refactor the following code to improve readability and performance. Use modern ES6+ syntax, avoid nested loops if possible, and add comments where necessary.
Пример использования: Вставьте цикл с for и вложенными условиями. Copilot может заменить его на Array.filter().map().
6. Генерация документации (JSDoc, комментарии)
Для чего: Copilot может автоматически добавить JSDoc-комментарии к функциям, описывая параметры, возвращаемые значения и исключения.
Промт:
Generate JSDoc documentation for the following function. Include @param, @returns, and @throws tags where applicable.
Пример использования: Вставьте функцию с несколькими параметрами. Copilot сгенерирует:
/**
* @param {string} name - User's name
* @param {number} age - User's age
* @returns {string} Greeting message
*/
7. Создание обработчиков ошибок
Для чего: Copilot может написать типовой try-catch блок с логированием и user-friendly сообщением, адаптированный под ваш фреймворк.
Промт:
Write an error handler for this async function. Log the error to console, return a 500 status with a user-friendly message, and include the error ID in the response.
Пример использования: Вставьте асинхронную функцию. Copilot сгенерирует обёртку с try/catch и res.status(500).json({ error: 'Something went wrong', errorId }).
8. Преобразование кода из одного ЯП в другой
Для чего: Copilot может переписать код с одного языка на другой (например, с Python на JavaScript), сохраняя логику.
Промт:
Convert the following Python code to TypeScript, maintaining the same functionality and using proper type annotations.
Пример использования: Вставьте Python-функцию с dict и list comprehensions. Copilot переведёт её в TypeScript с интерфейсами.
9. Генерация SQL-запросов из описания
Для чего: Copilot может написать SQL-запрос по текстовому описанию, экономя время на вспоминание синтаксиса.
Промт:
Write a SQL query to find the top 5 customers who spent the most money in the last month. Tables: customers(id, name), orders(id, customer_id, amount, order_date).
Пример использования: Copilot выдаст:
SELECT c.name, SUM(o.amount) as total_spent
FROM customers c
JOIN orders o ON c.id = o.customer_id
WHERE o.order_date >= NOW() - INTERVAL '1 month'
GROUP BY c.name
ORDER BY total_spent DESC
LIMIT 5;
Заключение
GitHub Copilot — это инструмент, который выходит далеко за рамки автодополнения. Используя правильные промты, вы можете автоматизировать рутину: писать коммиты, генерировать тесты, ревьюить код и создавать документацию. Начните с одного-двух промтов из этой подборки и постепенно внедряйте их в свой рабочий процесс. Уже через неделю вы заметите, сколько времени освободилось для действительно сложных задач.
Попробуйте прямо сейчас: откройте свой проект, выберите один из промтов и вставьте его в чат Copilot. Результат вас удивит.
Комментарии