Архитектурные драйверы

Продолжительность: 11 мин

В этом и следующих уроках мы начнём разбирать ключевые архитектурные концепции,
которые особенно важны на этапе понимания (Understanding Phase). Эти концепции связаны между собой:

  1. Архитектурные драйверы (Architectural Drivers) — факторы, которые влияют на архитектуру.
  2. Архитектурные требования (Architectural Requirements) — критерии успеха, определяемые этими драйверами.
  3. Архитектурные решения (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. 🚀 Технологические тренды

Современные технологии тоже влияют на архитектурные решения.
Но важно различать:

  • модные технологии — которые быстро появляются и исчезают;
  • устоявшиеся технологии — проверенные временем.

Хорошая архитектура — это баланс:

использовать «скучные, но надёжные» технологии,
при этом следить за новыми подходами, чтобы понимать, куда движется индустрия.

Взаимосвязь драйверов, требований и решений

Архитектурные драйверы → определяют → архитектурные требования, а те, в свою очередь, → влияют на → архитектурные решения.

Drivers - Requirements - Descisions

Пример:

  • Драйвер: необходимость масштабирования под рост команды.
  • Требование: разделить кодовую базу на независимые модули.
  • Решение: внедрить модульную архитектуру с разделением по доменам.

Итого

  • Архитектурные драйверы — это всё, что влияет на архитектуру.
  • Они бывают бизнесовыми, техническими, организационными или человеческими.
  • Драйверы формируют требования, а требования — решения.
  • Хорошая архитектура — это результат осознанного выбора под влиянием этих факторов.

В следующем уроке мы рассмотрим, как определить архитектурные требования для проекта FoodFleet и как они помогают измерить успех архитектурных решений.

Это платный урок

Купите полный доступ к курсу чтобы просматривать данный контент

Основы архитектуры фронтенда

Изучите основы проектирования современных, высоконагруженных фронтенд-приложений.

3990 Скидка 75%
990

Безопасные платежи обрабатываются сервисом Юкасса

Комментарии

Войдите, чтобы оставить комментарий