212 похожих чатов

Так а в целом это хорошая практика прокидывать инстасы одних

агрегатов в методы других для проверки инвариантов?

18 ответов

7 просмотров

вообще нет, так как ты для принятия решений достаешь стэйт другого агрегата.

Alexander- Автор вопроса
Sergey P
вообще нет, так как ты для принятия решений достае...

Не понимаю. Не в этом ли прелесть такого моделирования, что при видно откуда у каких данных растут ноги. Если рассмотреть другой кейс: Есть водитель Есть машина Водители привязываются к машинам. У одной машины не может быть более 2 водителей, а у одного водителя более 4 машин. Мы это реализовываем так: Метод Driver.addCar: получает на входе агрегат Car 1. Проверяет, что у водителя еще есть место для новой машины. 2. Добавляет в Driver.carIds референс на машину 3. Вызывает Car.addDriver с референсом на себя 4. Если Car.addDriver фейлит, то удаляем из Driver.carIds ссылку на машину Метод Car.addDriver: получает на входе агрегат Driver 1. Проверяет есть ли место для нового водителя. Если нет, фейлит. 2. Проверяет добавлена ли машина к водителю. Если нет фейлит Потом сохраняем два агрегата. Инварианты соблюдены

Sergey P
вообще нет, так как ты для принятия решений достае...

Как лучше организовать принятие решений? Прокидывать только влияющие на решение значения?

Алексей
Как лучше организовать принятие решений? Прокидыва...

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

Sergey P
Идеально - тот кто владеет данными принимает решен...

То есть решение принимается на уровне сервиса, который работает с репозиториями?

Алексей
А кто владеет?

Давай так, а кто у нас вообще в этом цирке выступает

Sergey P
Давай так, а кто у нас вообще в этом цирке выступа...

Выступают агрегаты, сервисы, и инфраструктура В моем манямире сервисы отвечают за взаимодействие агрегатов, запись/чтение этих самых агрегатов в бд; инфраструктура отвечает за взаимодействие с внешним миром через всякие API

Алексей
Выступают агрегаты, сервисы, и инфраструктура В мо...

А что такое агрегат? Как ты их себе представляешь.

Sergey P
А что такое агрегат? Как ты их себе представляешь.

Структура, включающая в себя кучу моделей, агрегатов, или valueObject

Алексей
Структура, включающая в себя кучу моделей, агрегат...

Что такое модели, почему агрегаты в агрегатах могут быть. К vo вопросов нет

Sergey P
Что такое модели, почему агрегаты в агрегатах могу...

Объект, который содержит данные, и правила их поведения

Sergey P
Что такое модели, почему агрегаты в агрегатах могу...

Мне всегда казалось, что агрегаты могут быть в агрегатах, не задумывался как-то над этим :/

Sergey P
Правила поведения - это как?)

Бизнес требования, иными словами Нельзя открыть страницу, которой нет в книге; нельзя иметь меньше 0 продуктов на складе

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
3
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Карта сайта