Как происходит постановка задач и работа с багами на фронтенде?
Что проверяют
Умеете ли вы работать в процессе: разобрать сырую задачу до начала работы, а не на ревью, и довести баг от репорта до исправления, которое не вернётся. Следом часто просят рассказать про последний сложный баг и как вы его локализовали.
Как отвечать
Опишите процесс своей команды по шагам:
- задача готова к работе, когда есть макет в Figma со всеми состояниями (загрузка, пусто, ошибка, длинный текст), контракт API или пример ответа, критерии приёмки, требования к адаптиву и список браузеров. Если чего-то нет, вы спрашиваете на груминге, а не додумываете;
- декомпозиция: большую фичу режете на части, которые выкатываются отдельно, при необходимости под фиче-флагом;
- путь задачи: тикет в трекере, ветка и PR с привязкой к нему, код-ревью, CI с линтером, тестами и сборкой, превью-стенд для проверки.
По багам:
- хороший репорт: шаги воспроизведения, ожидаемое и фактическое поведение, браузер и его версия, ОС, размер окна, скриншот или видео, ошибки из консоли и запросы из вкладки Network;
- мониторинг: Sentry или аналог с загруженными source maps и привязкой к релизу, чтобы видеть стек в исходниках и понимать, какой деплой принёс ошибку;
- серьёзность и приоритет: это разные оси, баг в редком браузере может быть серьёзным, но не срочным;
- исправление: сначала воспроизвести, лучше тестом (Vitest или Jest с Testing Library, для сценариев Playwright), потом чинить. Тест остаётся и ловит регресс. Для случая «вчера работало» помогает
git bisect.
Расскажите на своём примере: какой был процесс, какой баг запомнился, сколько ушло на поиск причины. Если процесса в команде толком не было, так и скажите и объясните, что делали вы сами, чтобы задачи не приходили сырыми.
Где спотыкаются
Говорят «беру задачу и делаю». Интервьюер слышит, что вы не задаёте вопросов и узнаёте о забытых состояниях экрана от тестировщика.
Чинят баг без воспроизведения и без теста: симптом исчез, причина осталась, и через релиз всё возвращается.
Разбирают ошибки с прода по минифицированному стеку, потому что source maps не загружены в мониторинг или загружены от другого релиза.