Базовый набор
- DevTools браузера (Chrome/Firefox/Edge): Sources, breakpoints, step over/into, call stack, watch.
console.log / console.table / console.dir — быстрый разведчик (не забывать убирать).
- Debugger statement:
debugger; — пауза, если открыты tools.
- Network — статусы, тела, timing запросов.
- Performance / Memory — долгие задачи, утечки.
- Source maps — отладка TypeScript/бандла по исходному коду.
- Линтеры и TypeScript — ловят класс ошибок до runtime.
- Unit/integration tests + воспроизведение бага в тесте.
console.log({ user, step: "after fetch" });
debugger;
Техники мышления
- Сузить: «где последний раз было правильно?»
- Бинарный поиск по коммитам / feature flags.
- Логировать вход/выход чистых функций.
- Проверять assumptions: тип, null, race condition.
Итог: главный инструмент — DevTools + осмысленные breakpoints; логи и типы ускоряют путь к причине.