Архитектурные требования
В прошлом уроке мы говорили о архитектурных драйверах — факторах, которые влияют на то, какой архитектурой будет наша система.
Теперь пришло время поговорить о архитектурных требованиях. Это своего рода чеклист успеха архитектуры — всё, что система должна обеспечивать, чтобы считаться успешной.
Что такое архитектурные требования
Архитектурные требования — это измеримые критерии успешности архитектуры.
Они напрямую следуют из драйверов и определяют архитектурные решения.
Можно представить их как набор вопросов:
- Что архитектура должна уметь?
- Каких показателей должна достичь?
- Какие ограничения должна учитывать?
Структура документа требований
Документ с архитектурными требованиями обычно организуется по тем же категориям, что и драйверы, о которых мы говорили ранее:
- Бизнес-цели (Business Goals)
- Ограничения (Constraints)
- Атрибуты качества (Quality Attributes)
- Архитектурно значимые функциональные требования (Influential Functional Requirements)
- Другие влияющие факторы (Other Influencers)
Пример архитектурных требований проекта FoodFleet
1. 🎯 Бизнес-цели
Каждый участник проекта видит успех архитектуры по-своему:
- CEO — увеличить количество заказов и удержание клиентов.
- VP of Engineering — повысить скорость разработки (velocity).
- Frontend-разработчик — уверенно выкатывать фичи, не ломая чужой код.
- Пользователь — быстро заказать еду и получить её без проблем.
Даже если архитектура «красивая и быстрая»,
но не помогает достичь бизнес-целей — она не успешна.
2. 🚧 Ограничения (Constraints)
Некоторые рамки заданы заранее и не подлежат обсуждению:
- Система должна быть развёрнута в Yandex Cloud, поскольку DevOps-команда поддерживает только эту инфраструктуру.
- Приложение должно быть адаптивным и полностью функциональным на мобильных устройствах, так как нативное мобильное приложение пока не реализовано.
- Первая версия должна быть выпущена в течение 4 месяцев, чтобы успеть к маркетинговой кампании.
Ограничения — это не проблемы, а рамки, в которых принимаются архитектурные решения.
3. ⚙️ Атрибуты качества (Quality Attributes)
Ключевые характеристики, по которым оценивается успех архитектуры:
| Атрибут | Критерий успеха |
|---|---|
| Производительность | Пользователь на мобильном устройстве с 4G может загрузить приложение за ≤ 5 секунд |
| Масштабируемость | Система должна поддерживать рост числа ресторанов и заказов без деградации производительности |
| Доступность (Availability) | Время простоя ≤ 0.1% в месяц |
| Доступность контента (Accessibility) | Интерфейс соответствует WCAG 2.1 AA |
| Поддерживаемость (Maintainability) | Новые разработчики могут онбордиться за ≤ 1 неделю |
Атрибуты качества помогают расставить приоритеты и определить,
на какие характеристики стоит тратить ресурсы.
4. 🧩 Архитектурно значимые функциональные требования
Это те функции, которые влияют на архитектуру, потому что определяют структуру, потоки данных и взаимодействие компонентов.
Примеры для FoodFleet:
- Поиск ресторанов и блюд.
- Работа корзины и оформление заказа.
- Онлайн-оплата с внешним провайдером.
- Отслеживание заказа в реальном времени через WebSocket.
- Управление заказами в интерфейсе ресторана.
Мы подробнее разберём этот раздел и проведём упражнение по определению архитектурно значимых требований в следующем уроке.
5. 👥 Другие влияющие факторы (Other Influencers)
Эти элементы не всегда формально считаются требованиями, но сильно влияют на архитектурные решения:
- Размер команды: сейчас 4 фронтенд-разработчика, через год — до 12.
- Опыт: разработчики уверенно работают с React и Next.js, некоторые знакомы с Vue и Laravel.
- Навыки: не все владеют TypeScript, поэтому возможен выбор — отказаться от него или обучить команду.
- Командная структура: при росте команды потребуется разделение по поддоменам.
Как выявить архитектурные требования
В реальном проекте тебе придётся самостоятельно обнаружить эти требования. Лучший способ — разговоры и наблюдение:
- общайся со стейкхолдерами (заказчиками) (CEO, PM, техлиды),
- обсуждай с разработчиками и дизайнерами,
- исследуй пользовательские потребности.
Задавай вопросы:
- Что важно для успеха продукта?
- Какие боли испытывает команда сейчас?
- Что для них значит «качественная архитектура»?
Задача архитектора — не просто слушать, а переводить ожидания людей в конкретные, измеримые критерии.
Рекомендованные техники
Книга Design It! предлагает несколько практических активностей:
- Quality Attribute Workshop (QAW) — выявление и приоритизация атрибутов качества.
- Stakeholder Interviews — интервью с ключевыми участниками проекта.
- Scenario Mapping — создание сценариев для проверки качества архитектуры.
Итог
- Архитектурные требования — это чеклист успеха для твоей архитектуры.
- Они группируются по бизнес-целям, ограничениям, качествам и функциям.
- Их можно и нужно выявлять через общение и совместную работу с командой.
- Эти требования станут базой для архитектурных решений, которые мы начнём формировать в следующих модулях.
В следующем уроке мы выполним упражнение №2 — определим архитектурно значимые функциональные требования (ASRs) для приложения FoodFleet.
Это платный урок
Купите полный доступ к курсу чтобы просматривать данный контент
Основы архитектуры фронтенда
Изучите основы проектирования современных, высоконагруженных фронтенд-приложений.
Безопасные платежи обрабатываются сервисом Юкасса
Комментарии
Войдите, чтобы оставить комментарий