AI University / Промпты / Код и разработка
Код и разработка

Промпт: объясни, что делает код

Понятное объяснение чужого кода по шагам. Готовый промт на русском: скопируйте, подставьте свои данные и вставьте в GigaChat, YandexGPT, ChatGPT, Claude или Gemini.

Проверено на: GigaChatChatGPTClaudeGemini · Обновлено 01.10.2026

Текст промпта

Объясни код ниже для {reader}. Сначала одной фразой: что делает код целиком. Потом по блокам: что происходит и зачем. Отдельно: неочевидные места и возможные подводные камни. В конце: как бы ты проверил, что код работает (2-3 теста). Код: {code}

Что подставить в промт

ПолеПример
{reader}начинающего разработчика
{code}const debounce = (fn, ms) => { let t; return (...a) => { clearTimeout(t); t = setTimeout(() => fn(...a), ms) } }

Ответы нейросетей на этот промпт

Один и тот же промпт с примером выше, ответы без правок: выберите нейросеть, которой пользуетесь, и посмотрите, что она выдаёт.

GigaChat 2 Max01.10.2026
Кратко:

Функция debounce ограничивает количество вызовов другой функции до одного раза каждые заданный промежуток времени (ms), игнорируя промежуточные вызовы между этими интервалами.


По блокам:
  1. Объявление функции

Функция принимает два аргумента — саму функцию (fn) и задержку в миллисекундах (ms). Она возвращает новую функцию-обёртку над переданной функцией.

  1. Использование замыкания:

Переменная t, хранящая идентификатор таймера, доступна внутри возвращаемой анонимной функции благодаря замыканию.

  1. Работа внутренней функции:

Когда внутренняя функция вызвана:

  1. Механизм дебаунса:

Если функция вызвана повторно до истечения предыдущего интервала ожидания, предыдущий таймер сбрасывается, и запускается новый отсчёт задержки.


Неочевидные моменты и подводные камни:

Проверки работы:
  1. Тест 1: проверка базовой функциональности
let count = 0;
const incrementCount = () => {
  console.log('incremented');
  count++;
};

const delayedIncrement = debounce(incrementCount, 500);
delayedIncrement(); // Сразу же вызовем первый раз
console.log(count); // Должно вывести 0

// Ждём больше половины секунды
setTimeout(() => {
  delayedIncrement();
}, 600);

// Ещё подождем секунду и проверим результат
setTimeout(() => {
  console.log(count); // Должно вывести 1
}, 1700);
  1. Тест 2: несколько быстрых последовательных вызовов
let calls = [];
const logCallTime = () => {
  calls.push(Date.now());
};

const throttledLog = debounce(logCallTime, 1000);
throttledLog(); // Вызываем сразу
throttledLog(); // Через 50 мс
throttledLog(); // Через ещё 100 мс
throttledLog(); // И снова спустя 150 мс

// Подождать немного дольше интервала
setTimeout(() => {
  console.log(calls.length); // Должно быть ровно одно значение
}, 1200);
  1. Тест 3: проверка сброса таймера при повторных вызовах
let loggedValue = '';
const logInput = value => {
  loggedValue += value + ' ';
};

const throttledLogger = debounce(logInput, 800);

throttledLogger('Привет'); // Первый вызов
setTimeout(() => throttledLogger('Мир'), 900); // Второй вызов должен перезаписать таймер первого
setTimeout(() => throttledLogger('Чао'), 1500); // Третий вызов уже сработает отдельно
setTimeout(() => console.log(loggedValue.trim()), 2500); // Должно напечататься только 'Мир Чао'

Эти тесты помогут убедиться, что механизм дебаунса корректно снижает частоту вызовов и правильно обрабатывает ситуации быстрого следования нескольких вызовов подряд.

Советы

Как пользоваться
  1. Скопируйте промпт кнопкой выше.
  2. Замените поля в фигурных скобках своими данными.
  3. Отправьте в нейросеть и сравните ответ с примером на этой странице.

Подробнее о структуре хорошего запроса: гид AI University.

Похожие промпты

БесплатноРевью кодаРазбор кода: ошибки, безопасность, читаемость, с исправлениями.БесплатноТесты к функцииНабор юнит-тестов с крайними случаями.БесплатноРегулярное выражение по описаниюRegex с объяснением и тестовыми строками.

Промпты работают лучше, когда понимаешь модель

56 официальных курсов Anthropic, OpenAI, Google и других на русском: первые уроки бесплатно, без VPN. Наборы промптов входят в полный доступ.

Полный доступ за 4 900 ₽