Как вести секцию system design на фронте
Вопрос
Как ты ведёшь секцию фронтенд system design? С чего начинаешь и как распределяешь время?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Начинаю с уточнения требований, а не с компонентов
Фиксирую нефункциональные требования и масштаб
Иду по этапам: API, данные, компоненты, оптимизации
Проговариваю компромиссы каждого решения
Оставляю время на узкие места: производительность, офлайн, доступность, безопасность
Рассуждаю вслух и сверяюсь с интервьюером, куда углубиться
Что могут спросить следом
- Что делать, если не знаешь технологию, о которой спросили?
- Сколько времени тратить на требования?
Разбор
Первые 5-10 минут уточняю требования: что делает пользователь, что вне задачи, какие устройства и сеть, нужен ли SEO, офлайн, доступность. Записываю это списком. Потом коротко оцениваю масштаб: сколько элементов, как часто обновления, это сразу подсказывает виртуализацию или батчинг. Дальше иду по этапам: API между клиентом и сервером с примерами ответов, модель данных на клиенте и где она хранится, дерево компонентов и стратегия рендеринга. Последнюю треть времени трачу на узкие места: производительность, сеть, офлайн, доступность, безопасность, метрики. На каждом шаге называю альтернативу и почему выбрал своё. И регулярно спрашиваю интервьюера, куда ему интересно копнуть глубже.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.