Какие есть альтернативные решения задачи
Что проверяют
Обычно это добивка после того, как вы предложили решение: интервьюер смотрит, знаете ли вы один приём или видите пространство вариантов и умеете сравнивать их по критериям. Заодно проверяют, признаёте ли вы цену своего выбора. Следом почти всегда идёт «почему тогда выбрали именно это» и «что поменяется, если требования изменятся».
Как отвечать
Держите один каркас: два-три варианта, критерии сравнения, выбор, условие пересмотра.
- критерии: сроки, поддерживаемость, скорость на реальных объёмах данных, размер бандла, SEO, опыт команды;
- состояние: локальный
useState, контекст, стор (Zustand, Redux Toolkit), серверный кэш (TanStack Query). Половина «глобального состояния» на деле это кэш ответа сервера, и тогда стор не нужен вовсе; - длинный список: пагинация, виртуализация (
react-window, TanStack Virtual), бесконечная лента. Виртуализация ломает поиск по странице и якорные ссылки, это стоит назвать вслух; - получение данных: REST с кэшем, GraphQL, серверные компоненты со стримингом. GraphQL снимает недобор полей, но требует контроля сложности запроса;
- стили: CSS Modules, утилитарные классы, рантайм CSS-in-JS (последнее плохо уживается с серверными компонентами).
Заканчивайте выбором и его границей: «взял бы виртуализацию, но на списке до двухсот строк это лишняя сложность, хватит пагинации».
Свой пример тут сильнее теории. Расскажите случай, где выбрали один вариант, а через полгода переехали на другой, и что именно это показало.
Где спотыкаются
Называют один вариант и объясняют его словами «так принято» или «так делают все». Для интервьюера это признак, что решение пришло из туториала, а не из работы.
Сравнивают лозунгами: «React быстрее», «GraphQL современнее». Без сценария и чисел такие фразы не значат ничего и сразу вызывают уточняющий вопрос, на который нечего ответить.
Перечисляют пять вариантов и не выбирают ни одного. Вопрос про альтернативы, но ответ обязан заканчиваться решением, иначе он читается как нежелание брать ответственность.