Size: a a a

Software Design/Architecture/Zen

2021 April 08

RL

Romka Los in Software Design/Architecture/Zen
В проблеме вопрошающего: у него есть граничные контексты, которые оперируют похожими/одинаковыми данными. Эти данные в предметной области связаны с одним информационным объектом и в контекстах объекты называются одинаково. Объекты реализуются в виде сущности или объекта-значения. Шарить реализации между - можно, но тогда растёт зацепление. Применяют обычно другое решение - используют механизм передачи данных в сообщениях. Сообщения должны быть переданы так, что не завязываться на язык/классы и прочее(json, например). С обоих сторон контекстов появляется необходимость в описании способов кодирования/декодирования сообщений. Во время кодирования/декодирования и решается проблема маппинга данных на понятный контексту язык объектов.
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
эта та которая обладает инвариантами и полиси
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
+
источник

RL

Romka Los in Software Design/Architecture/Zen
Эта не приносит денег.
источник

RL

Romka Los in Software Design/Architecture/Zen
Мне кста вообще всегда казалось что полиси - прикладное. А инварианты все таки про внутря домена.
источник

K

Konstantin in Software Design/Architecture/Zen
Зацепление это вообще не про это, зацепление не про то, что какой-то мс тебе прислал (сереализовал/десереализовал) какую-то кучу объектов в один звонок, если твой мс звонит в 10 эндпоинтов другого мс - это и есть зацепление
источник

RL

Romka Los in Software Design/Architecture/Zen
Оно ж разное бывает. Т.е. если у меня 2 контекста переиспользуют классы друг друга, то зацепление не растет?
источник

K

Konstantin in Software Design/Architecture/Zen
Что такое контексты
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
там куча видов каплинга вы похоже просто про разные типы каплинга разговариаете
источник

RL

Romka Los in Software Design/Architecture/Zen
Условно разделенные границы ответственности между командами
источник

K

Konstantin in Software Design/Architecture/Zen
Какими командами? 🥲
источник

RL

Romka Los in Software Design/Architecture/Zen
Командами разработки, например. Это не определение контекста☝️
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Полиси и инварианты для меня по боьшей части одно и тоже
Гарантирут нам  консистентность системы вов ремя изменния данных
источник

K

Konstantin in Software Design/Architecture/Zen
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Обычно если два контекста переиспользуют целиком классы друг друга, значит эти контексты поделили либо криво, либо зря. И стоит переделать их так, чтобы не переиспользовали.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Инварианты - правила для стэйта, полиси - что делать если что-то (например инвариант нарушен для eventual consistency). Лучше не обобщать термины
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Спасибо стало понятнее разница. Теперь больше не смешиваются они у меня.
источник

F

Forestoff in Software Design/Architecture/Zen
Добрый день.
Есть корзина - добавляем туда доступный товар. Через время товар заканчивается, но в корзине остается, но помечяется "закончился" - получается инвариант.
Что можно делать с инвариантами в такой ситуации и кто-нибудь сталкивался ли с таким?
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
У меня в голове почему то это все просто. Есть значение количества на складе. Если оно 0 то "закончился"
источник

R

Roman in Software Design/Architecture/Zen
Это товар, который кончился. Можно предложить юзеру заменить товар, можно просто уведомить, что товаров нет и ты пересчитаешь стоимость, выкинув товары, а можно просто выкинуть товары. Но это вполне валидный кейс
источник