Глава 10

SoC: разделяй разные причины изменений

Интерфейс, бизнес-правила, хранение данных и интеграции меняются по разным причинам. Когда они перемешаны в одном модуле, любое изменение начинает затрагивать всё сразу: правка формата ответа задевает бизнес-логику, смена хранилища - валидацию. Separation of Concerns предлагает разделять части именно по причинам изменения, а не по типам файлов.

Важно, что хорошая граница не обязательно означает новый сервис или папку. Иногда достаточно отдельной функции, модуля или явно сформулированного контракта. Цель - не размножить слои, а сделать так, чтобы одна причина для изменения жила в одном месте.

Граница проверяется одним вопросом. Она полезна, если позволяет изменить одну бизнес-причину, не открывая файлы другой бизнес-причины. Если для смены правил доставки приходится лезть в код скидок - граница проведена не там.

Прогнать конкретную ситуацию через этот критерий и понять, нужна ли граница уже сейчас, помогает лаборатория.

Интерактивная лаборатория 4

Нужна ли граница?

Проведите границу: части меняются по разным причинам. Хватит функции, модуля или контракта.
Проверка знаний

По какому признаку проводить границу (SoC)?

SoC говорит, ЧТО разделять - по причинам изменения. SOLID помогает спроектировать, КАК провести эти границы в классах и модулях.

Ссылки