Этап 17 из 19 · ≈ 6 ч

Структура большого приложения

Основа с Middle

Деление по функциональности, границы модулей, направление зависимостей, Feature-Sliced Design.

Что важно знать

  • По функциональности: модуль «корзина» содержит свои компоненты, хуки, запросы и типы.
  • Публичный API модуля — только через index.
  • Зависимости в одну сторону: страница → фича → сущность → общее.
  • Feature-Sliced Design — готовая методология со слоями app, pages, widgets, features, entities, shared.
  • Проверка автоматикой — eslint-правила границ.
  • По размеру: для небольшого приложения сложная архитектура — лишние затраты.

Критерии освоения

Middle ≈ 6 ч

  • Организует код по функциональности, а не по типу файлов, с публичным API модулей
  • Не допускает циклических зависимостей между модулями

Практика. Переструктурировать учебный проект по функциональности, оставить импорт модулей только через публичный index.

Senior ≈ 8 ч

  • Проектирует архитектуру приложения для нескольких команд и обосновывает её масштабом
  • Внедряет автоматическую проверку границ модулей в линтере

Практика. Описать архитектуру фронтенда продукта (слои, границы, состояние, правила зависимостей) в design doc и включить проверку границ в CI.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Как организовать архитектуру большого фронтенд-приложения?Senior

Цель — чтобы изменение в одной функции не задевало остальные и новый человек быстро находил код. Основа — разделение по функциональности (features, страницы, сущности), а не по типу файлов (components, utils, hooks), явные публичные API модулей, направление…

Полный разбор
Как управлять состоянием в React-приложении — Context, Redux, Zustand, серверное состояние?Junior

Сначала — локальное состояние и подъём к общему предку. Context — передать редко меняющиеся данные глубоко (тема, пользователь, язык) без прокидывания props. Глобальное хранилище (Redux Toolkit, Zustand) — сложное клиентское состояние, которое меняют многие…

Полный разбор
Как постепенно переписать большое legacy-приложение на новый стек?Senior

Переписывать всё с нуля — главный риск: годы без новых функций и вечная погоня за старой системой. Работает постепенная замена (strangler fig): новый стек встраивается в старое приложение — по страницам или виджетам, — новые функции пишутся сразу на новом…

Полный разбор
Зачем фронтенду монорепозиторий и как его организовать?Senior

Монорепозиторий хранит несколько приложений и пакетов (дизайн-система, клиент API, утилиты) в одном репозитории: атомарные изменения сразу во всех потребителях, единые версии зависимостей и инструменты. Работает на workspaces пакетного менеджера (pnpm) и…

Полный разбор
Какое состояние стоит хранить в URL и как защищать маршруты?Middle

В URL хранят то, что должно переживать перезагрузку, делиться ссылкой и работать с кнопкой «назад»: фильтры, сортировку, страницу, открытую вкладку, поисковый запрос. URL становится источником истины — компонент читает параметры, а меняет их через навигацию…

Полный разбор
Как устроен Redux Toolkit — слайсы, селекторы, middleware?Middle

Redux — одно хранилище, состояние меняется только через action (объект «что произошло»), а reducer — чистая функция (state, action) → новое state: без побочных эффектов, поэтому изменения предсказуемы, воспроизводимы и видны в Redux DevTools (история…

Полный разбор
Как писать пользовательские хуки?Middle

Пользовательский хук — функция с именем use…, внутри которой вызываются другие хуки; так выносят повторяющуюся логику (подписка на размер окна, debounce, загрузка данных, работа с формой). Каждый вызов хука получает своё состояние. Возвращаемые функции и…

Полный разбор
Что такое дизайн-токены?Middle

Токены — именованные значения дизайна: цвета, размеры шрифтов, отступы, радиусы, тени, длительности анимаций. Есть базовые (blue-600 = #2563eb) и семантические (color-accent, color-text-muted, space-md), компоненты используют только семантические. Токены…

Полный разбор
Зачем нужен Storybook?Junior

Storybook — песочница, где компоненты разрабатывают и показывают изолированно от приложения: каждая история (story) — компонент в конкретном состоянии (обычная кнопка, загрузка, ошибка, длинный текст). Он служит живой документацией для дизайнеров и…

Полный разбор

Документация

← Вся карта «Frontend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования