Найти в Дзене
Сергей Озеранский

Law of Demeter. Закон Деметры в программировании

Чуток теории программирования принесу позже.
Уверен, что это все любят. Law of Demeter. Law of Demeter (Закон Деметры), если описать его в одной фразе -
"не лезь во внутренности чужих объектов". Пример: Уже лучше Но, как мы любим, есть нюансы. В примере выше запах кода просто скрыт теперь через функцию или там могла быть property. Поэтому надо думать немного шире. Принцип не столько про то, чтобы "не было много точек".
Много точек - это просто запах кода, по которому можно понять чуть больше. Суть в связности. Если ты лезешь в цепочку внутренних объектов, значит твой код знает слишком много о соседях.
А это высокая сцепка. Чем больше объект знает о внутреннем устройстве другого, тем сильнее он с ним связан.
Сильная связность = дорогие изменения.
На уровне сервисов - то же самое.
Если один сервис знает доменную модель другого это уже не микросервисы. Это распределенный монолит.
Law of Demeter - очень простая штука.
Но если держать его в голове, системы становятся заметно дешевле в изм
Чуток теории программирования принесу позже.
Уверен, что это все любят.

Law of Demeter.

Law of Demeter (Закон Деметры), если описать его в одной фразе -
"не лезь во внутренности чужих объектов".

Пример:

Уже лучше

-2

Но, как мы любим, есть нюансы. В примере выше запах кода просто скрыт теперь через функцию или там могла быть property. Поэтому надо думать немного шире.

Принцип не столько про то, чтобы "не было много точек".
Много точек - это просто запах кода, по которому можно понять чуть больше.

Суть в связности.

Если ты лезешь в цепочку внутренних объектов, значит твой код знает слишком много о соседях.
А это высокая сцепка.

Чем больше объект знает о внутреннем устройстве другого, тем сильнее он с ним связан.
Сильная связность = дорогие изменения.

На уровне сервисов - то же самое.
Если один сервис знает доменную модель другого это уже не микросервисы. Это распределенный монолит.

Law of Demeter - очень простая штука.
Но если держать его в голове, системы становятся заметно дешевле в изменениях. И проще в понимании.

Больше постов у меня в Telegram-канале: https://t.me/sergeiozeranskii или через поиск в Telegram по запросу «Сергей Озеранский».