Архитектурные драйверы
В этом и следующих уроках мы начнём разбирать ключевые архитектурные концепции,
которые особенно важны на этапе понимания (Understanding Phase).
Эти концепции связаны между собой:
- Архитектурные драйверы (Architectural Drivers) — факторы, которые влияют на архитектуру.
- Архитектурные требования (Architectural Requirements) — критерии успеха, определяемые этими драйверами.
- Архитектурные решения (Architectural Decisions) — конкретные выборы и компромиссы, сделанные на их основе.
Что такое архитектурные драйверы
Архитектурные драйверы — это всё, что влияет на архитектуру системы.
Можно сказать, что это «внешние силы», которые направляют или ограничивают архитектурные решения.
Даже если два приложения выполняют одну и ту же задачу, их архитектуры могут сильно отличаться — именно из-за разных драйверов.
Основные типы архитектурных драйверов
1. 🎯 Бизнес-цели
Бизнес-цели часто упускаются из виду, но именно они — первая причина, почему вообще создаётся архитектура.
Это цели руководства, продукт-менеджеров или компании в целом, например:
- увеличить выручку,
- сократить издержки,
- ускорить выпуск новых функций,
- снизить технический долг,
- повысить качество пользовательского опыта.
Если архитектура не помогает достичь бизнес-целей,
она не может считаться успешной — независимо от её технической изящности.
2. ⚙️ Атрибуты качества (Quality Attributes)
Также называются архитектурными характеристиками. Обычно их легко узнать по окончанию -ility (в английском):
scalability, maintainability, reliability, usability и т. д.
Примеры ключевых атрибутов:
- Производительность (Performance)
- Масштабируемость (Scalability)
- Надёжность (Reliability)
- Поддерживаемость (Maintainability)
- Безопасность (Security)
- Гибкость (Agility)
Важно не просто перечислить все атрибуты, а выделить те, которые действительно влияют на архитектурные решения.
Например, в FoodFleet мы можем особо уделить внимание масштабируемости и отказоустойчивости.
3. 🚧 Ограничения (Constraints)
Ограничения — это жёсткие рамки, внутри которых мы обязаны работать.
Они бывают двух типов:
- Технические — например, использовать определённый фреймворк (React, Angular), язык (TypeScript, Java), или уже существующую инфраструктуру.
- Бизнес-ограничения — бюджет, сроки, доступность команды.
Ограничения — это не проблемы, а готовые решения. Они упрощают задачу, сужая поле выбора.
4. 🧩 Функциональные требования
Это возможности системы, то, что приложение должно уметь делать.
Например, в FoodFleet:
- поиск ресторанов и блюд,
- добавление в корзину,
- оформление заказа,
- оплата и трекинг доставки.
Не все функциональные требования одинаково влиятельны. Некоторые из них архитектурно значимы (Architecturally Significant Requirements, ASRs), и именно их нужно выделить. Мы сделаем это в отдельном упражнении позже в модуле.
5. 👥 Опыт и знания команды
Опыт и навыки команды напрямую влияют на архитектуру.
Даже если идеальное решение существует на бумаге, оно бесполезно, если команда не сможет его реализовать и поддерживать.
Также важно учитывать:
- опыт архитектора,
- привычные инструменты и процессы,
- зрелость DevOps-практик в компании и другие факторы.
6. 🚀 Технологические тренды
Современные технологии тоже влияют на архитектурные решения.
Но важно различать:
- модные технологии — которые быстро появляются и исчезают;
- устоявшиеся технологии — проверенные временем.
Хорошая архитектура — это баланс:
использовать «скучные, но надёжные» технологии,
при этом следить за новыми подходами, чтобы понимать, куда движется индустрия.
Взаимосвязь драйверов, требований и решений
Архитектурные драйверы → определяют → архитектурные требования, а те, в свою очередь, → влияют на → архитектурные решения.

Пример:
- Драйвер: необходимость масштабирования под рост команды.
- Требование: разделить кодовую базу на независимые модули.
- Решение: внедрить модульную архитектуру с разделением по доменам.
Итого
- Архитектурные драйверы — это всё, что влияет на архитектуру.
- Они бывают бизнесовыми, техническими, организационными или человеческими.
- Драйверы формируют требования, а требования — решения.
- Хорошая архитектура — это результат осознанного выбора под влиянием этих факторов.
В следующем уроке мы рассмотрим, как определить архитектурные требования для проекта FoodFleet и как они помогают измерить успех архитектурных решений.
Это платный урок
Купите полный доступ к курсу чтобы просматривать данный контент
Основы архитектуры фронтенда
Изучите основы проектирования современных, высоконагруженных фронтенд-приложений.
Безопасные платежи обрабатываются сервисом Юкасса
Комментарии
Войдите, чтобы оставить комментарий