В этой подборке — проверенные промты, которые я использую ежедневно для поиска и исправления ошибок. Каждый промт сопровождается реальным примером и кодом, чтобы ты мог сразу применить его в своём проекте.
1. Анализ стека ошибок
Промт: «Объясни, что означает эта ошибка на основе стека вызовов: [вставь стек]. Укажи вероятную причину и строку кода, где она возникла.»
Пример: Если ты получил TypeError: Cannot read property 'map' of undefined, промт подскажет, что переменная не инициализирована, и укажет на конкретную строку.
Код:
const data = undefined;
const items = data.map(item => item); // TypeError
2. Поиск логической ошибки в условии
Промт: «Найди логическую ошибку в этом условии: [вставь код]. Ожидаемое поведение: [опиши]. Фактическое поведение: [опиши].»
Пример: Условие if (x > 5 && x < 10) работает неверно, когда x = 10. Промт укажет на граничное значение.
Код:
x = 10
if x > 5 and x < 10: # x = 10 не удовлетворяет x < 10
print("В диапазоне")
else:
print("Вне диапазона") # выведет "Вне диапазона"
3. Выявление утечки памяти
Промт: «Проанализируй этот код на утечки памяти: [вставь код]. Используй принципы управления памятью в [язык].»
Пример: В JavaScript утечка может возникнуть из-за замыканий, которые удерживают ссылки на DOM-элементы.
Код:
function createListener() {
const element = document.getElementById('button');
element.addEventListener('click', function() {
console.log(element); // замыкание удерживает element
});
}
4. Оптимизация медленного запроса
Промт: «Оптимизируй этот SQL-запрос, который выполняется [время] секунд: [вставь запрос]. Предложи индексы или рефакторинг.»
Пример: Запрос с JOIN без индекса может выполняться минуты. Промт предложит добавить составной индекс.
Код:
SELECT * FROM orders
JOIN customers ON orders.customer_id = customers.id
WHERE customers.status = 'active';
5. Исправление асинхронной ошибки
Промт: «Исправь эту асинхронную функцию, которая не обрабатывает ошибки: [вставь код]. Используй async/await или then/catch.»
Пример: Если промис отклонён, но нет catch, приложение упадёт.
Код:
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
return data;
}
// Нет обработки ошибок
6. Разбор конкурентного доступа
Промт: «Найди race condition в этом коде: [вставь код]. Предложи исправление с помощью мьютекса или атомарной операции.»
Пример: В Go две горутины одновременно пишут в map — это приводит к панике.
Код:
var m = make(map[string]int)
go func() { m["key"] = 1 }()
go func() { m["key"] = 2 }() // race condition
7. Проверка типов
Промт: «Проверь типы данных в этом коде на TypeScript: [вставь код]. Укажи, где нарушены типы.»
Пример: Функция ожидает число, но получает строку.
Код:
function add(a: number, b: number): number {
return a + b;
}
add("5", 3); // Ошибка: string не number
8. Анализ логов
Промт: «Проанализируй эти логи и найди паттерн ошибок: [вставь логи]. Укажи, какие ошибки повторяются и как их исправить.»
Пример: В логах повторяется ETIMEDOUT — это указывает на проблемы с сетью.
Код:
2026-07-22 10:00:01 ERROR: connection ETIMEDOUT
2026-07-22 10:00:02 ERROR: connection ETIMEDOUT
9. Рефакторинг спагетти-кода
Промт: «Рефактори этот код, разбив его на функции: [вставь код]. Соблюдай принцип единственной ответственности.»
Пример: Одна функция делает 5 разных действий — промт разделит её.
Код:
function process(data) {
// валидация, форматирование, отправка, логирование, очистка — всё в одном
}
10. Поиск уязвимости
Промт: «Найди уязвимости в этом коде (SQL-инъекция, XSS и т.д.): [вставь код]. Предложи исправления.»
Пример: Конкатенация строк в SQL-запросе — классическая инъекция.
Код:
query = f"SELECT * FROM users WHERE name = '{user_input}'"
11. Отладка рекурсии
Промт: «Исправь эту рекурсивную функцию, которая вызывает переполнение стека: [вставь код]. Добавь базовый случай.»
Пример: Факториал без базового случая уходит в бесконечность.
Код:
def factorial(n):
return n * factorial(n - 1) # нет условия выхода
12. Исправление null/undefined
Промт: «Добавь проверки на null/undefined в этот код: [вставь код]. Используй optional chaining и nullish coalescing.»
Пример: Обращение к свойству объекта, который может быть null.
Код:
const user = null;
console.log(user.name); // TypeError
13. Оптимизация производительности
Промт: «Оптимизируй этот код, который выполняется [время] мс: [вставь код]. Используй мемоизацию или кэширование.»
Пример: Функция вычисляет факториал каждый раз — промт предложит кэшировать результат.
Код:
function expensive(n) {
return n * expensive(n - 1); // повторные вычисления
}
14. Разбор зависания
Промт: «Найди причину зависания этого приложения: [вставь код]. Используй async/await или worker threads.»
Пример: Синхронный цикл блокирует главный поток в Node.js.
Код:
while (true) { } // бесконечный цикл
Эти промты помогут сократить время отладки на 40-60% по опыту моей команды. Сохрани их в свой арсенал и используй при каждом баге.
Комментарии