Вернуться в видеотекуКоротко о видео
Это публичное мок-интервью по frontend-разработке с Андреем — бывшим руководителем автора. Участники обсуждают выбор между Vue, React и Elm, устройство event loop, reflow/repaint, сильные и слабые стороны TypeScript, а затем решают задачи на типизацию и объединение данных из трёх массивов. Во второй части разбирают оптимизацию React, мемоизацию, зависимости хуков и state management, после чего ведущий даёт кандидату развёрнутую обратную связь и Андрей рассказывает о карьере от PHP и Bitrix до управления студией и работы в продуктовых командах.
Затронутые темы
Что взять на заметку
- Для собеседования стоит уметь последовательно объяснить event loop: выполнение текущей задачи, обработку очереди microtasks перед переходом к следующей macrotask и связь этого процесса с рендерингом.
- Нужно различать reflow и repaint и понимать, что чтение геометрии DOM, например через getBoundingClientRect, после изменения стилей может принудительно запустить layout; повторение такого паттерна способно вызвать много reflow за кадр.
- В TypeScript полезно потренировать generic-типы, которые сохраняют конкретный union литеральных ключей или значений вместо расширения результата до string.
- Задачу по объединению products, users и comments лучше решать через предварительное индексирование сущностей в Map, а не многократные filter/find внутри циклов: так снижаются временные затраты и лишние выделения памяти.
- useCallback сам по себе не запрещает дочернему компоненту рендериться: для пропуска рендера нужна мемоизация компонента через React.memo и стабильные сравниваемые props.
- Двойной рендер в показанном примере ведущий связывает с React StrictMode в development-режиме, а не с ошибкой в обработчике клика.
- На техническом интервью полезно отделять проверяемые факты от личных предпочтений по фреймворкам и отвечать сначала кратко: ведущий отмечает, что спорные рассуждения могут увести разговор в сторону.