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

sda
2017.01.09, 11:38
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

zelenin, я могу каждое действие пользователя на сайте сохранять как событие в хранилище, а затем если в момент обработки события произошла ошибка, то перенакатить это событие заново. Но тогда наверное события должны быть детерминированными (однозначными), т.е. хранить окончательное значение, вместо ...
sda
2017.01.06, 21:39
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

zelenin, у меня так и есть. Две разные сущности User и Player. Но Player это самостоятельный агрегат, а не дочерняя сущность агрегата Game, так как нет никаких инвариантов, которые нужно было бы поддерживать между ними. Все что Player знает о Game, это его id. И я не могу засунуть Player в Game. Вон...
sda
2017.01.06, 18:01
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

zelenin, я не понимаю. НанесенУдар - затрагивает 2 разных агрегата (на самом деле еще больше). Одному агрегату нужно добавить опыта, другому агрегату нужно вычесть жизни. DDD говорит о том, что не следует сохранять более одного агрегата за раз и что для таких кейсов следует пользоваться EC. Я не пон...
sda
2017.01.06, 17:13
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

Используется nosql. Транзакций нет. Нужно изменить состояние у 3 агрегатов. Есть решение?
sda
2017.01.06, 16:40
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

Про этот алгоритм транзакций я читал. Это скорее хак, чем решение. Ревью этого решения из компетентных людей никто не делал. Много писали про nosql и eventual consistency, но при этом я не могу найти ни одного примера под nosql. Вот это удивляет. CAS поддерживают не все nosql, следовательно это не у...
sda
2017.01.06, 04:08
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

1. Что именно неясно в NoSQL? В монго атомарность гарантируется на уровне документа. Мы не можем атомарно добавить документы в несколько коллекций (таблиц в контексте sql). Даже в одну коллекцию не можем атомарно добавить 2 и более документа. 2. Даже если это и polling, то он тоже позволяет добитьс...
sda
2017.01.05, 21:22
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

rugabarbo, прочитал предложенную вами статью. Под sql примерно понятно как делать, под nosql нет. Также я из примеров не понял, кто и как вызывает EventForwarderService::ForwardEvents() ? Если это простой поллинг базы раз в N времени, то это печальное решение. Есть еще замечания к такой реализации, ...
sda
2017.01.05, 00:47
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Re: Eventual consistency

Но мне не нужны транзакции. Мне нужно реализовать надежный eventual consistency.
sda
2017.01.04, 05:31
Форум: Архитектура, дизайн, ООП
Тема: Eventual consistency
Ответы: 36
Просмотры: 9594

Eventual consistency

В книгах по ddd пишут, что желательно сохранять только 1 агрегат в транзакции. Если агрегат требует, чтобы родственные ему агрегаты тоже как-то изменили своё состояние, то предлагают использовать eventual consistency при помощи domain events. Мне это понятно. У меня вопрос касательно инфраструктуры....
sda
2016.12.28, 22:22
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

ElisDN я понял так, что вложенные сущности нужны только когда необходимо соблюсти инвариант Отрывок из книги Вон Вернона Implementing Domain-driven design An invariant is a business rule that must always be consistent. There are different kinds of consistency. One is transactional consistency, which...
sda
2016.12.28, 11:44
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

zelenin я думал, что ответ будет, что нет смысла делать сущность дочерней, если не требуется соблюдать инварианты или что-то такое. Ведь именно этим объясняется необходимость в агрегате в книгах по ddd.
sda
2016.12.28, 01:10
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

Я хочу понять, когда использовать вложенные сущности, а когда отношение между агрегатами по id. Должно быть какое-то разумное обоснование, когда какой вариант использовать.
sda
2016.12.28, 00:30
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

Если возникает желание обратиться к конкретному элементу массива $this->orders за пределами Customer, то означает ли это, что Order должен быть самостоятельным агрегатом ? Как вообще понять, когда использовать дочернюю сущность внутри агрегата, а когда ссылаться на другой агрегат по id ? У меня проб...
sda
2016.12.24, 12:32
Форум: Вёрстка и JavaScript
Тема: литература node js
Ответы: 17
Просмотры: 6241

Re: литература node js

Не совсем понятно, что конкретно нужно. Вас архитектура приложения интересует или что?
sda
2016.12.24, 08:50
Форум: Вёрстка и JavaScript
Тема: литература node js
Ответы: 17
Просмотры: 6241

Re: литература node js

Платформа node.js это v8 и набор модулей на C++ с api в стиле javascript. Поэтому если знать javascript, то достаточно посмотреть api всех этих модулей, чтобы понять что платформа может и как пользоваться. Но если ступор, то можно посмотреть скринкаст Кантора https://www.youtube.com/playlist?list=PL...
sda
2016.12.21, 17:47
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

class ContactBuilder {     public function withCity($city) {         $this->city = $city;         return $this;     }     public function withAddress($address) {...}     public function withPhone($phone) {...}     public function withFax($fax) {...}     public function withEmail($email) {...}     p...
sda
2016.12.21, 12:26
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

zelenin ElisDN, ну хорошо, а вот если у меня типичный билдер, я просто насетил туда данных от клиента и передал в метод агрегата, тот просто вызвал у билдера метод build и получил готовую дочернюю сущность. Это удобно, понятно, поддерживаемо ?
sda
2016.12.21, 11:43
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

zelenin, меня смущает что dto это application layer. Если я буду dto передавать в метод агрегата, то домен будет зависеть от application layer.
sda
2016.12.21, 10:10
Форум: Архитектура, дизайн, ООП
Тема: Как добавлять дочерние сущности к агрегату?
Ответы: 20
Просмотры: 6550

Re: Как добавлять дочерние сущности к агрегату?

Но что делать если нам для создания объекта Order требуется не 3 параметра, а 10? Какое тогда может быть решение? http://yiiframework.ru/forum/viewtopic.php?f=34&t=36725&p=192540#p192540 10 просто для примера. Вообще это не существенно 4,5,7 или 10. В вашем примере конструктор Contact прини...