Как видишь свою роль в архитектуре проекта
Что проверяют
Насколько вы видите дальше своей задачи и какой уровень ответственности готовы брать. От мидла ждут участия и умения замечать проблемы, от сеньора решений и ответственности за их последствия. Следом просят пример: какое архитектурное решение вы предлагали и что из этого вышло.
Как отвечать
Сначала обозначьте, за что фронтенд отвечает в архитектуре проекта:
- структура кода: деление по фичам, а не по типам файлов, границы модулей и правила импорта. В русскоязычных командах часто встречается Feature-Sliced Design;
- состояние: что относится к серверному состоянию (TanStack Query, RTK Query), что к клиентскому (Zustand, Redux, контекст), и почему их не смешивают в одном сторе;
- контракт с бэкендом: OpenAPI-схема и генерация типов, чтобы расхождения ловились на сборке, а не в проде;
- способ рендеринга: SSR, SSG или CSR в зависимости от SEO и скорости первой загрузки;
- производительность и качество: бюджет на размер бандла, Core Web Vitals (LCP, INP, CLS), дизайн-система, тесты критичных сценариев.
Затем опишите своё место: где вы исполняете решения, где предлагаете, где решаете сами. Хорошо работает формат «проблема, варианты, решение, цена». Например, вы перевели работу с API на сгенерированный клиент, и баги из-за несовпадения полей почти исчезли. Пример и цифры должны быть ваши. Если архитектурных решений вы пока не принимали, скажите прямо и расскажите, какую проблему в текущей архитектуре заметили и как предложили бы её решить.
Добавьте, что фиксируете решения письменно, например в ADR, чтобы через год было понятно, почему сделано именно так.
Где спотыкаются
Отвечают лозунгами: «пишу чистый код по SOLID и DRY, использую компонентный подход». Это гигиена кода, а не архитектура.
Уходят в крайность. Одни говорят «архитектуру решает тимлид, я делаю задачи», другие на позиции мидла обещают проектировать всё сами.
Путают архитектуру с выбором фреймворка «под высокую нагрузку». Нагрузку держит бэкенд, а фронтенду важны размер бандла, стратегия рендеринга и управление состоянием.