
Как искать ошибку, когда «ничего не работает»
Пошаговый способ найти причину сбоя: воспроизвести, сузить область поиска, проверить гипотезу и закрепить исправление.
Знакомая ситуация: вчера всё работало, сегодня кнопка ничего не делает, а в коде уже десятки файлов. Желание сразу переписать подозрительный компонент понятно, но обычно это лишь добавляет новых неизвестных. Отладка начинается с точного описания того, что произошло.
Запишите наблюдаемый результат
Вместо «форма сломалась» сформулируйте: «после нажатия “Сохранить” появляется загрузка, затем форма очищается, но новая запись в списке не появляется». Укажите страницу, входные данные и шаги. Повторите сценарий дважды. Если ошибка проявляется не всегда, отметьте, что меняется: браузер, учётная запись, размер данных или скорость сети.
Найдите границу, где данные становятся неверными
Пройдите цепочку по одному звену: клик → обработчик → запрос → ответ сервера → обновление состояния → отображение. На каждом шаге задавайте один вопрос: «данные здесь уже неправильные или ещё правильные?» Для веб-приложения полезны консоль и вкладка Network. Ошибка 400 говорит о неверном запросе, 500 — о сбое на сервере, успешный ответ при пустом экране направляет внимание к интерфейсу.
Не добавляйте десятки сообщений в лог сразу. Одно сообщение перед подозрительным шагом и одно после него часто дают больше ясности. Проверяйте не только значение, но и тип: строка "0" и число 0 ведут себя по-разному.
Меняйте по одной вещи
Сформулируйте гипотезу: «список не обновляется, потому что после успешного ответа остаётся старое состояние». Сделайте минимальное изменение, повторите те же шаги и сравните результат. Если одновременно заменить запрос, компонент и схему базы, вы не узнаете, что именно помогло.
Когда ошибка появилась недавно, просмотрите последние изменения. Иногда причина — переименованное поле, новый обязательный параметр или условие, которое перестало выполняться. Сравнение старой и новой версии файла быстрее чтения всего проекта.
Проверьте соседние сценарии
Исправленная кнопка ещё не означает исправленную функцию. Проверьте пустое значение, повторное нажатие, обновление страницы и ошибку сети. Если сбой можно воспроизвести автоматически, добавьте короткий тест на его причину. Так эта же ошибка не вернётся незаметно.
Хорошая запись об исправлении состоит из трёх строк: как воспроизвести проблему, почему она возникала и что изменилось. Через месяц эта запись сэкономит время вам или коллеге. Навык отладки — не умение угадывать причину с первого взгляда, а умение последовательно исключать неверные объяснения.