46 уникальных просмотров

Архитектура последствий

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

Системная архитектура — та же история: одно решение — десятки шлейфов, и не все из них пахнут ягодами. В системном мышлении каждое архитектурное действие — даже на первый взгляд мелкое — создаёт цепочку влияний, которые могут аукнуться в самых неожиданных местах: в производительности, поддержке, UX, безопасности, команде.

Разберёмся на примерах с точки зрения винодела.

Пример первый: Последствия технологических решений

В одном проекте по управлению устройствами «умного дома» была выбрана популярная экосистема: дешёвые модули, гибкие API, широкая совместимость. Всё шло отлично, пока вендор не отключил поддержку в стране из-за санкций. Пользователи потеряли доступ к свету, отоплению, сигнализации.

Винная аналогия:
Это как использовать модные импортные дрожжи. Вино начало бродить, всё по плану — и вдруг импортер приостанавливает поставки. Урожай есть, а сбраживать нечем. И всё, что ты можешь — смотреть, как виноград киснет.

Вывод:
Технология — это не только возможности. Это риски зависимости. Хороший архитектор, как опытный винодел, всегда держит в уме локальную альтернативу и запасной путь.

Пример второй: Последствия бизнес-исключений

В сельхозмаркетплейсе сначала всё работало по единой модели: фермерам понятно, покупателям удобно.
Потом один крупный клиент попросил свою логику расчёта субсидий. Второй — свою цепочку поставки. Третий — экспортные сертификаты. Казалось: «ну что, пару условий добавим».

В результате:
– код оброс условностями,
– каждая новая фича ломала старую,
– продукт стал непредсказуемым даже для разработчиков (у которых время жизни в компании сократилось до полугода, кстати).

Винная аналогия:
Это как добавить мёд, пряности и вишнёвый экстракт в один и тот же купаж, чтобы угодить разным рынкам. На выходе — сладкая каша без стиля, без баланса и без характера.

Вывод:
Каждое исключение это микро-вилка архитектуры. И чем их больше, тем меньше у системы шансов быть внятной.

Пример третий: Последствия организационных компромиссов

Платформа для региональных соцвыплат. Запуск срочный, сроки политические. Решено: делаем MVP, потом приведём в порядок.
Валидации поверхностные, логирование — частичное, бизнес-правила — зашиты в SQL. Через полгода:
– люди начали получать неверные суммы,
– жалобы выросли в десятки раз,
– пришли мужчины в строгих костюмах с усталыми лицами.

И вот тут все поняли: никто не может объяснить, как система работает в текущий момент. Нет истории, нет прозрачности, нет логики.

Винная аналогия:
Это как не фильтровать и не стабилизировать вино, чтобы успеть к выставке. Красиво разлили — а через месяц бутылки начинают взрываться в погребах покупателей. 

Вывод:
Архитектура — это не только схема. Это встроенные рельсы на будущее. Они могут быть невидимы в момент запуска, но определяют, поедет ли поезд дальше.

Пример четвертый: Последствия интерфейсных решений

В приложении для диспетчеров городского транспорта сделали «удобную штуку»: можно вручную менять остановки в маршруте, удалять и добавлять любые точки «на лету».

Через месяц:
– данные о маршрутах стали нерелевантными,
– система аналитики сломалась,
– прогноз движения стал бессмысленным для пассажиров.

Винная аналогия:
Это как открыть вино за неделю до дегустации, потом перелить в пластиковую бутылку, потом охладить, а потом снова нагреть. Удобно? Может быть. Но это уже не вино. Это шмурдяк. 

Вывод:
Интерфейс — это не просто вид. Это часть логики системы.
И любое "удобство" должно проходить архитектурную проверку.

Заключение

Хорошее вино — результат цепочки решений, и всё, что ты делаешь по ходу, возвращается, хочешь ты этого или нет.

В архитектуре каждый выбор — это контракт с будущим собой. Какой формат хранения данных ты выбрал? Как ты обработал нестандарт? Где позволил нарушить принцип?

Системное мышление — это умение не просто выбирать, а помнить, к чему это приведёт.

Если у вас были архитектурные решения, о которых вы вспоминали спустя годы, поделитесь ими, пожалуйста.
Или наоборот: если одно предусмотренное допущение спасло проект, тем более интересно.

 

Paul Jurich
15 дней назад