теория

Каскады, бюджеты и цена входа

Через месяц после переезда Лера приносит жалобу, которую фронтенд ждал: «Утром терминал открывается заметно дольше, чем в монолите». Замер подтверждает — и раскладывается на две причины, обе встроены в архитектуру, а не в чей-то плохой код.

Каскад загрузки. В монолите браузер качал один бандл. Теперь: оболочка → манифест → бандл зоны → данные зоны. Четыре шага строго друг за другом — каждый узнаёт следующий адрес только из предыдущего ответа. Это браузерный родич сорока сетевых вызовов из восемнадцатого модуля — только там цепочку схлопнули слиянием, а здесь её укорачивают иначе: параллелить (манифест инлайнится в оболочку — минус целый шаг; зона стартует загрузку данных, не дожидаясь полного рендера) и предугадывать (навёл курсор на пункт меню — префетч бандла зоны; вероятные переходы из телеметрии — тёплый кэш заранее).

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

Для «видеть» существует — SLO фронтенда, назначенное каждой зоне: вес бандла, время до первого осмысленного экрана, отклик на действие — в перцентилях, как учил второй модуль (среднее и тут врёт: у половины трейдеров корпоративные сети с сюрпризами). Бюджет держится механикой, а не благими намерениями: CI зоны падает при превышении веса — так же, как падает при изломе контракта. Превышение бюджета — не преступление, а повод для разговора: может, зоне и правда нужно больше — тогда бюджет пересматривают явно, записью, а не дрейфом.

И последняя строка в смете, самая честная: вся эта глава — манифесты, канарейки, телеметрия версий, бюджеты, контрактные тесты границы — инфраструктура, которой в монолите не было. Она не бесплатна ни в постройке, ни в сопровождении. Это и есть та «цена распила», которую мы взвешивали в тридцать девятом модуле, — теперь она видна построчно. У нас чаша весов сошлась правильно: сто деплоев в неделю против двух. Но у команды из двух человек с одним приложением эта же смета — чистый убыток. Дорога сюда была правильной для нас — не вообще.

← назад