Найдено 334 результата

sda
2020.02.29, 21:17
Форум: Архитектура, дизайн, ООП
Тема: Доменная модель.
Ответы: 5
Просмотры: 17788

Re: Доменная модель.

anton_z, Егор пишет про вычисления внутри конструктора с последующим сохранением результатов в состояние объекта. Здесь нет подобных вычислений, только ассерты не позволяющие создать объект если нарушаются инварианты. В этом отношении особых различий нет. Примеры Вон Вернона также это используют. Ск...
sda
2020.02.29, 06:57
Форум: Архитектура, дизайн, ООП
Тема: Доменная модель.
Ответы: 5
Просмотры: 17788

Доменная модель.

Здравствуйте. У Вон Вернона есть пример реализации форума . Внутри форума можно инициировать новое обсуждение. У Вон Вернона это реализовано таким образом . Происходит следующее. Метод startDiscussionFor проверяет некоторый инвариант, а именно закрыт форум или нет и в случае если форум всё же не зак...
sda
2019.08.25, 16:15
Форум: Архитектура, дизайн, ООП
Тема: Проектирование сущностей, сервисов и репозиториев
Ответы: 108
Просмотры: 49650

Re: Проектирование сущностей, сервисов и репозиториев

по поводу ACID и заказа за который не оплатили, то хочу сказать, что только благодаря ACID клиент смог его вообще сьесть ACID не всегда работает. Представьте сайт бронирования путешествий. Необходимо забронировать билет на самолет, гостиницу и такси в рамках одного бизнес-процесса. Сделать атомарно...
sda
2018.06.09, 14:58
Форум: Архитектура, дизайн, ООП
Тема: Crud генератор слоистой архитектуры
Ответы: 12
Просмотры: 5944

Re: Crud генератор слоистой архитектуры

ElisDN, где здесь вообще слоистая архитектура. Тут всё что генерируется зависит от фреймворка, который есть слой представления. Нижний слой, о верхнем знать не должен. Здесь всё наоборот.
sda
2018.02.08, 11:18
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z писал(а): 2018.02.08, 10:56 Я стараюсь больше одного агрегата в транзакции не менять
А как вы обрабатываете тогда ситуации когда изменения в агрегате влияют на другой агрегат ?
sda
2018.02.08, 10:41
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, да из-за размеров. У вас же наверняка есть реализация optimistic concurrency и когда одна транзакция меняет скажем сразу 3 агрегата, то кто-то другой уже мог тоже изменить любой из этих трех агрегатов. Тогда текущая транзакция не сможет выполниться. И чем толще транзакция, тем выше шанс так...
sda
2018.02.08, 08:45
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, а у вас транзакции фейлятся? Чем больше агрегатов сохраняется в одной транзакции, тем ведь выше шанс что она законфликтится с другими транзакциями.
sda
2018.02.02, 00:12
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, и ещё я по кассандре немного не понял. Там есть транзакции построенные на алгоритме paxos кажется. Но я так понял там не работает подход Read-Modify-Update по которому работает слой приложения в многоуровневых приложениях. Так как нет блокировок то соответственно при стандартном подходе rea...
sda
2018.02.01, 23:55
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, ну транзакции в рсубд же тоже не магическим образом работают. Нельзя атомарно изменить данные в двух разных файлах, так как это 2 операции, в то время как ядро процессора атомарно может выполнить только 1 операцию. Рсубд эти транзакции пишут в лог, а уже потом накатывают изменения на данные...
sda
2018.01.20, 10:20
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, а вы как делаете? Меняете все агрегаты в одной транзакции и сохраняете в рсубд ?
sda
2018.01.20, 02:45
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, вот такие . Они вызывают сервисы приложения и меняют состояние сущностей. Отправить email 2 раза ничего страшного. Изменить состояние сущности 2 раза это уже нарушение согласованности данных. Сделать всю доменную модель идемпотентной невозможно. Сделать идемпотентным сам слушатель тоже нево...
sda
2018.01.20, 00:44
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, но слушатели не могут атомарно запомнить id и выполнить операцию. Если увеличить id до операции, тогда операция может быть не выполнена, если увеличивать после операции, тогда операция может быть выполнена более 1 раза.
sda
2018.01.19, 03:09
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

дедуплицировать на их основе (запоминать значение счетчика)
Как ? Что-то пока не могу понять идею.
sda
2018.01.19, 01:30
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, еще дедупликация нужна так как хендлеры не идемпотентны. Не придумал ничего кроме сохранения обработанных сообщений вместе с документом. Репозиторий кидает DuplicateMessageException если встречает сообщение в документе. Консьюмер ловит это исключение и пишет сообщение в коллекцию обработанн...
sda
2018.01.17, 20:15
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

Если я правильно понял, вы всегда одним запросом к одному документу в монге одновременно меняете данные документа и добавляете к нему события (как вложенные документы), верно? да Ну а по поводу событий не из сущностей - то тут либо попробовать подобрать сущность, либо исхитряться и переделывать фун...
sda
2018.01.17, 11:29
Форум: Архитектура, дизайн, ООП
Тема: Общение между слоями
Ответы: 30
Просмотры: 10519

Re: Общение между слоями

anton_z, в монге нет транзакций. Я придумал такое решение. Сохранять события внутри самой сущности и кидать их в очередь. Консьюмер получает событие и записывает его в таблицу событий, затем удаляет событие из сущности и запускает обработчик события. Если происходит сбой между сохранением событий и ...
sda
2018.01.17, 00:04
Форум: Архитектура, дизайн, ООП
Тема: command bus !== ООП?
Ответы: 34
Просмотры: 10354

Re: command bus !== ООП?

Bio man писал(а): 2018.01.16, 23:36 Нужно ли перенести эти интерфейсы в app слой?
нужно
sda
2018.01.16, 11:31
Форум: Архитектура, дизайн, ООП
Тема: REST API, маршрутизация
Ответы: 7
Просмотры: 3558

Re: REST API, маршрутизация

Bio man, все несуществующие url перенаправляют на index.html где поднимается angular/vue/etc и роутер фронтенд приложения решает, что показать пользователю. Зачем пытаться запускать vue при помощи php ?
sda
2018.01.15, 21:40
Форум: Архитектура, дизайн, ООП
Тема: REST API, маршрутизация
Ответы: 7
Просмотры: 3558

Re: REST API, маршрутизация

Bio man, у фронтенд приложения своя точка входа index.html
sda
2018.01.07, 15:35
Форум: Архитектура, дизайн, ООП
Тема: Разделение агрегата
Ответы: 63
Просмотры: 17876

Re: Разделение агрегата

noLogicOnlyWar, ну всё же я не нашел, чтобы вернон внедрял репозитории в сущность, тем более через конструктор. Я увидел только внедрение доменных сервисов и только в методы сущности (не в конструктор). Это действительно в некоторых ситуациях имеет смысл. Например можно вынести проверку емайла на ун...