
Anton
09.11.2016
10:15:32
попоболь будет, но пока я не уверен в том, что я с лету сделаю нормальную доменную модель, которой будут чужды серьезные изменения

Aleh
09.11.2016
10:15:40
короче, кмк лучше все-таки писать ивенты, если даже ты их на самом деле не юзаешь

Anton
09.11.2016
10:16:00
ивенты я 100% буду писать
просто пока они не будут храниться транзакциями в базе

Google

Aleh
09.11.2016
10:16:25
не понял

Anton
09.11.2016
10:18:09
ну доменные модели в основном будут только генерить ивенты, и никак (если у меня получится) не будут контачить с инфраструктурным уровнем, он будет только подписыавться на эти ивенты, но он не будет в бд записывать их, а будет пока просто в бд изменять поля в табоицах сущностей

Aleh
09.11.2016
10:18:23
так вот
я и говорю
что пиши ивенты
изменяй поля сущностей
но и ивенты пиши

Anton
09.11.2016
10:19:03
ну доменная модель будет меняться, и эти ивенты уже могут серьезно измениться к моменту перехода

Aleh
09.11.2016
10:19:09
могут

Anton
09.11.2016
10:19:11
и это будет еще большей попаболью

Aleh
09.11.2016
10:19:16
нет
пиши ивенты просто как лог
если будет тяжело

Google

Aleh
09.11.2016
10:19:47
ты всегда можешь его удалить
ты же его юзать не будешь
но когда соберешься перейти

Anton
09.11.2016
10:20:03
ну условно был класс с тремя полями, я его сохранил, а когда надо восстановить - там уже пять полей в классе
что тогда?

Aleh
09.11.2016
10:20:12
бля

Anton
09.11.2016
10:20:15
логи у меня писаться будут

Aleh
09.11.2016
10:20:17
ты собираешься хранить стейт
храни стейт и ивенты
их можешь не юзать
но храни
мигрировать всегда можно
было 3 поля, стало 5
ну миграции типа
ок да?)
при этом если ты изначально не будешь писать ивенты
и пустишь приложение в прод, то будет проблема
к моменту начала записи ивентов у тебя будет стейт
который никак не производится ивентами
т.е. при реплее ты получишь не тоже самое

Google

Anton
09.11.2016
10:22:16
т.е. почти на каждое изменение в доменной модели мне придется писать миграцию, которая изменит ивенты уже сохраненные? но они же должны быть неизменными, насколько я понял

Aleh
09.11.2016
10:22:37
должны, но у тебя же нет времени на проектирование
тебе в любом случае миграции делать надо

Anton
09.11.2016
10:22:58
у меня на этот момент будет полный лог, из которого можно будет нагенерить ивентов

Aleh
09.11.2016
10:23:01
для стейта

Anton
09.11.2016
10:24:25
ну изначально когда проектировали - никто не заикался про ES, и в итоге для каждой таблицы есть таблица-лог

Aleh
09.11.2016
10:24:47
ну так тебе все равно надо миграции писать)

Anton
09.11.2016
10:25:14
да, но мне ничего не надо помнить о том, какие классы ивентов были раньше, и как они поменялись
просто нахеракал под текущую структуру, и ок
без всяких учловий по времени)

Aleh
09.11.2016
10:25:46
в смысле тебя пугает, что пруф хранит fqcn?

Aleh
09.11.2016
10:26:06
ну так подмени это
а как у вас в логе хранится инфа о том, что произошло?
два разных ивента могут привести в данной структуре к одному и тому же
но с изменением требований по итогу будет происходить абсолютно разное

Anton
09.11.2016
10:30:39
хмм, да, пожалуй, можно хранить в этой табле название ивента, но без подробностей
я просто не раз встречал упоминание о том, что ES лучше внедрять, когда домен уже обкатан в первой версии, и прям диких сюрпризов быть не должно

Aleh
09.11.2016
11:03:07
проблема всегда, что делать с текущим состоянием

Anton
09.11.2016
12:07:13
это да

Google

Anton
09.11.2016
12:07:36
а делать сервисы инвоками идея не очень хорошая, как выяснилось
$platforms = (new GetPlatformsService())(); - ибо так делать нельзя))

Sergey
09.11.2016
12:42:57
это да
я делаю инвоками - у меня сервисы эти через дабл диспатч приходят как аргументы экшенов

Anton
09.11.2016
12:43:07
это легаси проект
тут недоларавел бородатой версии

Sergey
09.11.2016
12:43:42
public function registerCustomer(RegisterCustomerRequest $request, RegisterCustomerHandler $handler)"
{
$ures = $handler($request);
return new UserSessionResource($user);
}

Anton
09.11.2016
12:44:13
инжекты сервисов в сервисы не завезли даже

Sergey
09.11.2016
12:44:55
> инжекты сервисов в сервисы не завезли даже
тебе кто-то мешает организовать это?) контейнеров зависимостей что-ли мало?

Admin
ERROR: S client not available

Anton
09.11.2016
12:45:50
проекту жить осталось месяца три)

Sergey
09.11.2016
13:06:41
нафиг его тогда вообще делать?

Anton
09.11.2016
13:21:58
бизнесу не откажешь)

Aleh
09.11.2016
13:23:59
типа чуваки сейчас за три месяца на каком-то хайпе бабла хотят нагрести и закрыться?
или как это рабоает?

Sergey
09.11.2016
13:25:04
попил бабла инвесторов?

Dmitriy
09.11.2016
13:36:41

Anton
09.11.2016
14:13:12
не, проекту 4 года, он изначально был заговнякан, и в течении четырех лет его договнякали, сейчас это дело перепиливается, и за три месяца будет прототип с минимальным функционалом, с которым уже можно будет работать

Aleh
10.11.2016
06:16:24
Так а чего не постепенный рефакторинг?

Mihail
10.11.2016
06:51:35
йо
кто делал пуш натификацию ?

Google

Fayozjon [CybernatiC]
10.11.2016
07:07:00
Firebase

Anton
10.11.2016
08:29:03
@mkusher потому что будет охуеть какое расширение функционала месяцев через пять, и в старую систему это просто не вкрячить

Aleh
10.11.2016
08:29:34
Ого, за ещё одним гражданством?

Steven
10.11.2016
09:34:48
Добра много не бывает.

Mihail
10.11.2016
10:18:38
так ему дали уже Русское

Sergey
10.11.2016
14:11:46
@iGusev я сразу подумал ты упоролся, а потом увидел что это всего лишь перевод) https://habrahabr.ru/post/314544/

Ilya
10.11.2016
14:14:29
о
превьюшка хорошо встает в телеграме
не зря рисовал КДПВ
тут народ в чате топит все время за DDD

Sergey
10.11.2016
14:16:00
да я так и понял что ты вдохновился чатиком)

Ilya
10.11.2016
14:16:06
вот я и решил начать на практике

Sergey
10.11.2016
14:16:36
на symfonycamp после доклада по DDD и ES спикеры аж убегали от вопросов

Ilya
10.11.2016
14:16:43
))))
для себя вижу плюсы в ES в том, что всегда можно ткнуть клиента носом в факты на его "а я ничо не нажимал"

Sergey
10.11.2016
14:19:35
для этого можно и просто логи юзать

Ilya
10.11.2016
14:21:33
мне не нравится использование info-логов
только alert/critical