#14 Собеседование Senior Frontend разработчика из FAANG
Выпуск «Отсобеседования» с мок-интервью senior frontend-разработчика из Firebase/Google. Разговор сочетает опыт работы в большой кодовой базе, архитектурные дискуссии и практическое code review с тестами.
Отсобеседование
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 69,4 тыс.
- Лайки на YouTube: 1,9 тыс.
Таймлайн
Коротко о видео
Мок-собеседование senior frontend-разработчика с Киром, который рассказывает о работе в Firebase/Google, миграции Angular на Ivy, огромном монорепозитории и практиках code review. Основная техническая часть посвящена SSR и AMP, TypeScript, WebAssembly и Canvas, современному тулингу, производительности layout, моделям DOM во фреймворках и Vue 3. В практическом code review участник разбирает функцию выдачи пользовательских данных по ролям, предлагает упростить её и сначала покрыть тестами.
Затронутые темы
Что взять на заметку
- SSR имеет смысл выбирать по измеримой задаче: SEO, метатеги для шаринга, поддержка клиентов без JavaScript или доказанный выигрыш первого отображения; статическая генерация, частичный prerender и streaming могут быть альтернативами.
- По опыту участника, монорепозиторий Google опирается на общую систему версий, выборочную загрузку файлов и Bazel с кэшированием, но глобальные обновления зависимостей требуют миграции всего кода.
- TypeScript, по мнению участника, полезен почти во всех крупных проектах для рефакторинга и подсказок; JSDoc может быть облегчённой альтернативой, но не заменяет гибкую типовую систему и проверку проекта.
- Типизация не отменяет тестов: она проверяет форму данных, а тесты должны подтверждать логику и поведение приложения.
- В code review важны владельцы кода, проверка экспертом по языку, тесты для нового кода и соразмерность замечаний изменению; при слабом коде полезнее объяснить решение автору, чем молча переписать его.
- Для плавных интерфейсных анимаций стоит не анимировать высоту с постоянным relayout: можно заранее вычислить позицию и перемещать сгруппированный контейнер через transform по подходу FLIP.