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

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

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

18 ответов

27 просмотров

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

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 продуктов на складе

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта