Есть баг.
Кнопка не работает.
Пользователь злится.
В консоли красным горит что-то страшное.
Можно сразу начать тыкать код в надежде, что проблема сама испугается и исчезнет 😆
🔍А можно включить режим детектива.
Шаг 1. Осмотреть место преступления
Что именно сломалось?
У всех пользователей или у одного?
Всегда или только иногда?
На телефоне работает, а на компьютере нет?
Чем точнее симптомы — тем меньше подозреваемых.
🕵️ Шаг 2. Собрать улики
Логи, ошибки в консоли, запросы к API, последние изменения в коде.
Разработчик в этот момент буквально делает то же самое, что детектив:
— Что произошло перед ошибкой?
— Что изменилось?
— Где система ведёт себя нормально, а где уже нет?
🤖 Шаг 3. Не хватать первого подозреваемого
«Наверное, база тормозит».
Не факт.
«Наверное, API сломался».
Тоже не факт.
Хороший дебаг — это не угадайка. Выдвинул гипотезу → проверил → исключил → пошёл дальше.
💥 Шаг 4. Воспроизвести преступление
Если ты умеешь стабильно повторить баг — половина дела уже сделана.
Нажал сюда → ввёл это → обновил страницу → всё упало.
Отлично. Теперь можно спокойно идти по цепочке и искать момент, где всё пошло не так.
И вот тут появляется полезная привычка, которая отличает сильного разработчика от человека, который просто хаотично переписывает код:
не спрашивать «что тут сломано?», а спрашивать «какие факты помогут мне найти причину?»
Так что программист иногда действительно немного детектив.
Только вместо отпечатков пальцев — логи.
Вместо подозреваемых — функции.
А главный преступник обычно сидит где-нибудь в одной строчке, на которую ты уже смотрел десять раз 😅