теория
Осталась третья ось — и она отвечает на вопрос, который экономит больше всего нервов: «а оно вообще меняется?»
— это ожидаемая частота изменений компонента. И вот ключевая мысль: выгода от чистой границы пропорциональна волатильности. Граница окупается свободой менять часть независимо. Но если часть не меняется — свободой некому пользоваться, а платить за границу (свой деплой, мониторинг, сетевые вызовы, версии) приходится каждый день. Строить сервис вокруг того, что не трогали два года, — это в чистом виде.
Как прикинуть волатильность, не гадая? Посмотри, что бизнес меняет чаще всего. Удобно разложить систему на три вида частей:
Core волатилен — ему и нужны чистые границы. Supporting и generic стабильны — на них границы тратить жалко.
И ловушка напоследок: . Стабильный сам по себе модуль, если он сильно связан с волатильным ядром, меняется вместе с ним — и становится волатильным заодно. Поэтому волатильность считают не по модулю в вакууме, а с оглядкой на его связи. Режь вдоль волатильности: отделяй меняющееся ядро от спокойной периферии.