Что такое архитектура ПО
Тема дорожной карты · Software Architecture
Архитектура ПО — множество структурных решений, которые дорого менять позже: выбор языка, топология деплоя, границы модели данных, паттерны коммуникации. Классическое рабочее определение Ральфа Джонсона: 'архитектура — про важные вещи, какими бы они ни были'. Архитекторы не просто рисуют коробочки; они оценивают компромиссы между атрибутами качества (производительность, масштабируемость, безопасность, поддерживаемость) под реальными ограничениями.
Как это работает
Архитектурная работа происходит в трёх режимах. Discovery-режим: понимание бизнес-проблемы, требований к атрибутам качества, технических ограничений, контекста существующей системы. Design-режим: предложение структур (модули, сервисы, поток данных, deployment-топология), оценка компромиссов, выбор одной альтернативы и документирование почему. Evolution-режим: по мере работы системы наблюдаемая реальность раскрывает, какие архитектурные решения были неверны, а какие верны; архитектор обновляет систему, чтобы соответствовать узнанному. Большинство архитектурной документации слишком статично — ценность приходит от непрерывной эволюции.
Когда применять
Инвестируйте в архитектурную работу когда (а) цена изменения решения позже высока — топология деплоя, выбор основной БД, контракт публичного API, (б) несколько команд будут работать над системой и нужна общая структура, (в) требования атрибутов качества выходят за пределы стандартных паттернов (очень высокий throughput, строгий compliance, multi-region availability). Пропустите тяжёлую upfront-архитектуру для прототипов и маленьких co-located продуктов, где 'просто построить' быстрее, чем 'спроектировать сначала'.
Типичные ошибки
(1) Ivory tower архитектура — архитекторы проектируют без входа от инженеров, которые будут реализовывать; дизайн нереализуем или непрактичен. (2) Big-Design-Up-Front для неизвестных проблем — архитектура для системы с ещё не стабильными требованиями; архитектура застывает на ошибочных допущениях. (3) Архитектура как PowerPoint — красивые диаграммы, никогда не проверенные против running-кода; архитектура живёт в реальной структуре кода, не на слайдах.