@oop_ru

Страница 120 из 785
Aleh
23.02.2017
12:18:57
бизнес-транзакция должна отработать синхронно

другие контексты естественно должны отрабатывать асинхронно

и естественно должны быть механизмы работы в случае если любая последующая кроме нашей "синхронной" транзакции упали

Aleksandr
23.02.2017
12:20:10
бизнес-транзакция должна отработать синхронно
и эта бизнес транзакция, отраюотавшая синхронно, "я принял твою команду и сгенерил эвент - иди отдыхай"

Google
Aleh
23.02.2017
12:20:20
можешь пример привести?

и эта бизнес транзакция, отраюотавшая синхронно, "я принял твою команду и сгенерил эвент - иди отдыхай"
ну скорее всего оно затрагивает что-то в системе, в которой работаешь

order is processed

ок, мы сделали все изменения над аггрегатами в нашей системе синхронно

команда об этом сообщила

остальные контексты отработают или нет

Aleksandr
23.02.2017
12:21:26
в вк когда ты отправляешь сообщение, оно в ui добавляет оптимистично, но по факту может появиться секунд через 10, которые эта команда обрабатывается асинхронно.

Aleh
23.02.2017
12:21:50
емнип там одинм запросом это ходит

сейчас проверю

Aleksandr
23.02.2017
12:22:30
емнип там одинм запросом это ходит
в вк вероятно. я не утверждал обратного

Aleh
23.02.2017
12:22:31
да, одним

т.е. это как раз синхронная команда

Google
Aleksandr
23.02.2017
12:22:45
нет

Aleh
23.02.2017
12:22:45
но вк в любом случае такое себе решение

со всех сторон

Aleksandr
23.02.2017
12:24:08
но вк в любом случае такое себе решение
да это везде так. ты видишь оптимистичное изменение в ui, можешь обновить страницу и твоего оптимистичного изменения уже не будет (если команда не обработана или не сделано хитрое дублирование на конкретном сервисе).

Aleh
23.02.2017
12:25:29
и сообщение в одной транзакции отдается

дальше начинаются всякие

счетчик обновить

нотификации послать

это другие контексты и другие транзакции

оно выходит за рамки текущего аггрегата и тут уже eventual consistency

Aleksandr
23.02.2017
12:26:16
погоди. что команда ДобавитьСообщение делает по твоему синхронно? добавляет сообщение?

Aleksandr
23.02.2017
12:26:28
нет

это дорого

Aleh
23.02.2017
12:26:49
готов поспорить

Aleksandr
23.02.2017
12:26:53
для вк, твиттера, фб..

Aleh
23.02.2017
12:27:05
это дорого
это ваша проблема

добавить легко, записать об этом все сложно

Google
Aleh
23.02.2017
12:27:17
обновить все счетчики

ленты

теги, поиски

вот это сложно

а добавить как раз легко

а добавить как раз легко
и мы далее по id можем спокойно это вытащить

Aleksandr
23.02.2017
12:39:53
кто их имплементирует?
interop писали, что отнаследовались, поэтому все, кто юзал их стандарт, наследует автоматически 11

думаю, скоро и официально перелезут

и мы далее по id можем спокойно это вытащить
ок, возможно ты прав, и я базируюсь на том, что янг писал в книгах - его мировоззрение явно эволюционировало

Aleh
23.02.2017
12:42:04
оо

а какие книги?

Aleh
23.02.2017
12:42:24
потому что я только 6 часовой его мастер-класс посмотрел)

ну и бложики

вот фаулера еще @YuraLukashik оч советует видосик про event sourcing

Aleksandr
23.02.2017
12:58:18
а какие книги?
видимо под книгами я имел в виду https://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf и его слайды с различных выступлений. дело было года три назад - книг по ddd/cqrs/es было прочитано около десятка

Aleh
23.02.2017
12:58:36
а если не его, то какие?

а то я эванса и вернона ток из прям по ддд

а все остальные так слегка косаются

Aleksandr
23.02.2017
12:58:53
от ms есть что-то типа cqrs journey

Google
Aleh
23.02.2017
12:59:11
а, от infoq маленькая брошюрка

ddd quickly

или типа того

Aleksandr
23.02.2017
12:59:25
эванс, вернон да. вот кстати вернона новая неплохая про reactive системы

да, от infoq. еще одна от вернона - ddd distilled, но она по сути выжимка из его ddd-изысканий в более краткой форме

Aleh
23.02.2017
13:01:17
вот ddd distilled видел, но не читал

Aleksandr
23.02.2017
13:01:17
от ms есть что-то типа cqrs journey
насколько помню, удивительно толковая в плане объяснений

Aleh
23.02.2017
13:01:25
я то и implementing не полностью еще прочитал(

Aleksandr
23.02.2017
13:01:56
я то и implementing не полностью еще прочитал(
я раза 3-4 перечитывал) каждый раз новые слои снимаешь

Admin
ERROR: S client not available

Aleh
23.02.2017
13:02:02
ага

Aleksandr
23.02.2017
13:02:51
и совсем доходчивая ddd in php, если актуален язык)

Aleh
23.02.2017
13:04:43
ddd in php, это которая на leanpub?

я ее листал, когда она еще совсем сырая была

Hell
23.02.2017
13:51:58
господа, а сам pipmple как контейнер где лучше всего хранить?

Aleh
23.02.2017
13:52:40
в прошлом

Hell
23.02.2017
13:53:35
ОК, а если pimple уже выбрали?

Evgeniy
23.02.2017
13:55:26
в папке vendor :D

Hell
23.02.2017
13:55:53
$container = new Pimple\Container();

$container->register(

Google
Hell
23.02.2017
13:56:12
$container['oauth2-providers'] = $providersFactory;

Evgeniy
23.02.2017
13:56:12
конфигурацию ?)

Hell
23.02.2017
13:56:21
return $container;

Evgeniy
23.02.2017
13:56:32
вот с этим у меня была беда в больших проектах

и я запилил свою реализацию psr/container

Hell
23.02.2017
13:57:21
и теперь где хранить self::$_container = $container;

Evgeniy
23.02.2017
13:57:34
не надо self::....

ты его можешь аргументом

получать

Hell
23.02.2017
13:58:14
в смысле?

Evgeniy
23.02.2017
13:58:22
$container['name'] = $container->factory(function (Container $container) {...});

вместо много точия функция которая возврает объект

инициализировать надо так

Hell
23.02.2017
13:59:13
я не про иницализацую контейнера сейчас говорю

Evgeniy
23.02.2017
13:59:18
$container['session'] = function ($c) { return new Session($c['session_storage']); }; http://pimple.sensiolabs.org/

по сути

сокращенная запись от того что я написал

более правильная вот (на той же странице ниже) 3 $container['session'] = $container->factory(function ($c) { return new Session($c['session_storage']); });

Hell
23.02.2017
14:00:10
а про то, где хранить сконфигурированный pimple контейнер, если он используется в двух и более классах

и код конфигурирования pimple контейнера

Evgeniy
23.02.2017
14:01:22
$loader = require_once '../vendor/autoload.php'; $container = require_once '../pimple/configuration.php';

примерно так

Страница 120 из 785