В 2003 году товарищ Ральф Джонсон выдал сразу несколько вариантов определения архитектуры. Все они до сих пор используются, поэтому имеет смысл быть про них в курсе.
Для начала представим Ральфа. Он был научным руководителем студента, придумавшего термин «рефакторинг». А ещё Ральф входит в банду под названием «Gang of Four». Эта банда в 1994 написала знаменитую книжку «Паттерны проектирования». Получается, именно Ральф подкинул на собеседования разработчиков классические вопросы про синглтоны и абстрактные фабрики.
Итак, Ральф авторитетен в вопросах разработки ПО, поэтому посмотрим на его определение №1:
То есть архитектура - это в первую очередь социальный конструкт. Это точка зрения, о которой договорились люди, заинтересованные в проекте. Ну а договорились они в основном о том, как система разделена на компоненты, а также о том, как эти компоненты взаимодействуют.Архитектура - это коллективное понимание дизайна системы.
Определение №2:
Это звучит логично, если проектировать программные системы так же, как проектировать самолёты. Если ты выбрал модель двигателя, то всё, назад пути нет. Зато тебе понятен адекватный размах крыльев, грузоподъемность, а также количество мест у окна. Поэтому выбор модели двигателя является архитектурным решением (если начинать проектирование самолёта с этого решения).Архитектура - это проектные решения, которые хотелось бы сделать правильно как можно раньше.
Определение №3:
Архитектура – это про важные вещи. Чем бы эти важные вещи не были.
Это развитие определения №2 и оно крайне популярно. Смысл в том, что когда проектируешь систему, нужно сначала понять, что для этой системы важно. Потом нужно в первую очередь тратить энергию на поддержание важного в хорошем состоянии. Если намечается рабочая встреча о каком-то важном решении на проекте, это 100% архитектурная встреча.
Отделять важное от неважного – непростая задача. Допустим, каждый человек является архитектором своей жизни. Судя по статистике, мало кто может выделить важное даже в своей личной жизни, а потом удержать это важное в хорошем состоянии. Понять можно, всё-таки горизонт планирования лет 50.
С рабочими проектами всё чуть проще. В IT считается, что если проект мог быстро впитывать изменения больше 5 лет, архитектор был хорошим.
Три определения архитектуры в этой статье далеко не идеальны. Но сводятся они к тому, что на проекте есть список важных коллективных решений. Если переиграть список этих решений заново, получится очень похожая система потому что архитектура та же. Архитектурное решение в письменном виде называется ADR (architectural decision record). В 2024 году ситуация с управлением ADR-ами чуть похуже ситуации с управлениями требованиями, но много кто пытается навести порядок, что не может не радовать.
(В следующей статье посмотрим на современные представления об архитектуре…)
- Архитектура: Начало
- Архитектура: Вдохновение
- Архитектура: Здания
- Архитектура: Стандартизация
- Архитектура: Неформальные определения
- Архитектура: Современность