Frontend-архитектура
Для чего модуль
Научиться проектировать frontend-архитектуру, которая выдерживает рост продукта, команды и требований к качеству.
Результат после прохождения
- Вы умеете строить модульные границы и управлять зависимостями.
- Вы снижаете архитектурный риск через ownership и правила взаимодействия модулей.
- Вы можете эволюционировать legacy-зоны без остановки разработки.
- Вы защищаете архитектурные решения через метрики и эксплуатационные последствия.
Термины и аббревиатуры
| Термин | Коротко |
|---|---|
Coupling | Связанность модулей |
Cohesion | Целостность модуля |
Ownership | Ответственный за зону |
Dependency map | Карта зависимостей |
Migration plan | План перехода |
Фокус по грейдам
Junior: понимать базовые механики и объяснять их простыми примерами.Middle: применять тему в продуктовых сценариях с учетом рисков и ограничений.Senior: управлять архитектурными trade-offs, метриками и эволюцией решения.
Как работать с модулем
- Возьмите один проблемный участок текущего frontend-кода.
- На каждом уроке фиксируйте: текущая проблема -> целевая архитектура -> план перехода.
- После каждого урока обновляйте dependency map и ADR.
Программа модуля
Урок 1. Модульность и слои
Цель: разделить систему на зоны ответственности с минимальной связанностью.
Базовые архитектурные слои
- UI/presentation.
- Domain/use-cases.
- Data/integration.
- Shared/platform.
Принципы модульности
- Высокая cohesion внутри модуля.
- Низкая coupling между модулями.
- Явные public API модуля, скрытые внутренности.
Где ломается в проде
- Shared слой превращается в «свалку» зависимостей.
- Модули импортируют внутренности друг друга.
- Нет правил направления зависимостей.
Мини-задача (обязательная)
Сделайте dependency map одного крупного флоу и выделите 3 нарушения модульных границ с планом исправления.
Что спросит интервьюер: как понять, что модульная архитектура «работает», а не только красиво нарисована.
Критерий готовности по уроку: вы можете показать архитектурную карту системы и объяснить, где сейчас риск связанности.
Урок 2. Ownership и процессы
Цель: привязать архитектуру к ответственности команды.
Ownership model
- У каждого модуля есть владелец.
- Ясные правила изменений cross-module.
- SLA реакции на инциденты и архитектурные регрессии.
Архитектурные quality gates
- PR-check для границ модулей.
- ADR для значимых изменений.
- Автоматические проверки зависимостей (где возможно).
Где ломается в проде
- «Общий код» без владельца.
- Критичные решения принимаются устно и не документируются.
- Инциденты повторяются, потому что ownership не определен.
Мини-задача (обязательная)
Опишите ownership-matrix для 5 ключевых модулей: owner, reviewer, SLA, эскалация.
Что спросит интервьюер: как вы распределяете ответственность за архитектурные зоны.
Критерий готовности по уроку: вы можете превратить архитектуру из схемы в рабочую операционную модель команды.
Урок 3. Архитектурная эволюция
Цель: менять архитектуру постепенно и безопасно.
Подход к миграции
- Выделяем наиболее рискованную зону.
- Планируем этапы с checkpoints.
- Оставляем rollback-вариант на каждом этапе.
Измерение прогресса
- Снижение cross-module связей.
- Снижение числа архитектурных нарушений.
- Влияние на delivery (lead time, defect rate).
Где ломается в проде
- Попытка «переписать всё» вместо локальных шагов.
- Нет критериев завершения этапа.
- Команда теряет скорость из-за неограниченного scope миграции.
Мини-задача (обязательная)
Составьте план архитектурной эволюции на 6 недель для одного legacy-модуля: этапы, риски, метрики, rollback.
Что спросит интервьюер: как вы эволюционируете архитектуру без остановки бизнес-фич.
Критерий готовности по уроку: вы можете показать реалистичный план изменений с управлением риском и влиянием на delivery.
Урок 4. Практика принятия решений
Цель: выстраивать архитектурный диалог на языке компромиссов и последствий.
Decision record
Для каждого решения фиксируйте:
- Контекст и проблему.
- Альтернативы.
- Выбор и rationale.
- Риски и mitigation.
- Метрики проверки.
Работа с возражениями
- «Слишком сложно» -> показываем cost of current complexity.
- «Долго» -> этапность и quick wins.
- «Можно потом» -> риск накопления техдолга и стоимость откладывания.
Мини-задача (обязательная)
Подготовьте мини-ADR на одно спорное решение и проведите архитектурную защиту (3 ожидаемых возражения + ответы).
Что спросит интервьюер: как вы защищаете архитектурный выбор, если команда не согласна.
Критерий готовности по уроку: вы ведете архитектурную дискуссию структурно и предметно, без «религиозных» аргументов.
Практика
1. Boundary map и dependency violations
Связка: Senior q-1, Senior q-2, Senior q-18.
Что сделать:
- Выберите 5 доменов продукта: например
catalog,checkout,profile,billing,shared-ui. - Заполните architecture boundary map:
domain -> owner -> public API -> allowed dependencies -> forbidden dependencies -> validation. - Составьте violation register:
violation -> impact -> current workaround -> target boundary -> first safe fix.
Артефакт: boundary map + dependency violation register.
Критерий готовности: вы можете показать, какая связь реально опасна, кто владелец boundary и какой guardrail предотвращает повтор.
2. Ownership и platform governance
Связка: Senior q-8, Senior q-16, Playbook q-7.
Что сделать:
- Подготовьте ownership matrix для shared UI, API client, routing, auth/session, analytics и design tokens.
- Для каждого shared asset укажите owner, consumers, API stability, a11y requirement, versioning, migration path, adoption signal.
- Добавьте CI/review guard: lint rule, CODEOWNERS, contract checklist или visual/a11y gate.
Артефакт: ownership/governance matrix + one guardrail proposal.
Критерий готовности: вы объясняете architecture ownership как систему принятия решений, а не как список ответственных людей.
3. Six-week migration plan
Связка: Senior q-12, Senior q-18, Senior q-20.
Что сделать:
- Выберите legacy zone: например
checkout state,shared forms,legacy API clientилиdesign system modal. - Составьте phased migration plan на 6 недель: phase, scope, compatibility, feature flag, validation, rollback, owner.
- Добавьте metrics: boundary violations, lead time, defect rate, bundle/CWV impact, incident count or support signal.
Артефакт: six-week migration plan + risk register.
Критерий готовности: вы показываете evolution without freeze: маленькие этапы, проверяемые gates и rollback на каждом рискованном шаге.
4. ADR и защита решения
Связка: Senior q-20, Playbook, Interview pattern taxonomy.
Что сделать:
- Напишите mini-ADR: context, options, decision, trade-offs, risks, validation, owner, revisit condition.
- Подготовьте 3 возражения:
too complex,too slow,can wait. - Ответьте на каждое через current cost, phased rollout, measurable signal и rollback/revisit rule.
Артефакт: mini-ADR + objection handling sheet.
Критерий готовности: вы защищаете решение через evidence и trade-offs, а не через личный вкус или авторитет.
Связь с треками и вопросами
- Architecture boundaries: Senior q-1, Senior q-2, Senior q-18.
- Governance and quality gates: Senior q-8, Senior q-16, Playbook q-7.
- Decision leadership: Senior q-12, Senior q-20, Interview pattern taxonomy.
- Повторение: через 24 часа пересоберите один ADR и boundary map без подсказок.
Критерий готовности
Ready: вы обосновываете архитектуру через constraints, ownership, risk, migration path, guardrails и измеримое влияние на delivery.
Partial: вы видите проблему в архитектуре, но не можете назвать owner, validation gate, rollback или metric of success.
Not ready: вы предлагаете "переписать нормально" без boundary map, phased migration и decision record.
Артефакты после модуля
- Architecture boundary map.
- Dependency violation register.
- Ownership/governance matrix.
- Six-week migration plan + risk register.
- Mini-ADR + objection handling sheet.