Добавить в корзинуПозвонить
Найти в Дзене

Разбираю вопрос от подписчика

sender, address, cityId — это язык внешнего контракта. Отправитель, Адрес, ИдентификаторГорода — это язык нашей системы.
Поэтому на границе добавляем переводчик: sender → Отправитель address → Адрес cityId → ИдентификаторГорода
В DDD это называют Anticorruption Layer. В Clean Architecture — Interface Adapters. В Hexagonal Architecture — Adapters. Названия разные, но идея одна: внешний формат не должен становиться внутренней моделью. Иначе пишешь не на языке своей системы, а на языке чужого API. А потом любое изменение внешнего контракта ломает бизнес-логику. А первая проблема решается организационно: нужно зафиксировать правила, проводить code review, подключать анализаторы, SonarQube, BSL Language Server и другие инструменты.
-2
-3

-4

sender, address, cityId — это язык внешнего контракта.

Отправитель, Адрес, ИдентификаторГорода — это язык нашей системы.

Поэтому на границе добавляем переводчик:

sender → Отправитель

address → Адрес

cityId → ИдентификаторГорода

В DDD это называют Anticorruption Layer.

В Clean Architecture — Interface Adapters.

В Hexagonal Architecture — Adapters.

Названия разные, но идея одна: внешний формат не должен становиться внутренней моделью.

Иначе пишешь не на языке своей системы, а на языке чужого API. А потом любое изменение внешнего контракта ломает бизнес-логику.

А первая проблема решается организационно: нужно зафиксировать правила, проводить code review, подключать анализаторы, SonarQube, BSL Language Server и другие инструменты.