
Anton
24.02.2018
11:03:04
Хмм... надо на каком то знакомом примере... сейчас попробую накидать что-то
Скажем у нас есть теже профили пользователей. Бизнес обеими руками за то чтобы иметь полную историю изменений пользователя и мы такие окей, самое время для ES. И тут нам озвучивают бизнес правило что E-Mail может быть одинаковым между максимум 3 пользователями (тупой пример, да). Как такое рулить на реально больших данных. Когда мы не сможем сделать какой-то явный EmailIndex и поднимать его в память...
Сумбурно как-то получилось

Maksim
24.02.2018
11:07:38
посмотри как у нас в итоге индекс выглядит

Google

Anton
24.02.2018
11:08:01

Maksim
24.02.2018
11:08:08
мы со Стёпой отказались от идеи всё в память грузить, так что наступило щасце

Sergey
24.02.2018
11:09:23
вродеж ничего плохого в том что write модель юзает внутри проекции какие-то свои нету

Anton
24.02.2018
11:09:52
Могу. Вопрос согласованности.

Maksim
24.02.2018
11:11:13
А? что? где?
в общем у нас индекс - отдельный сторадж (база, табличка, etc) key/value

Sergey
24.02.2018
11:13:32
можно prefix-tree замутить, нет? выйдет быстрый маленький индекс
или фильтр блума

Anton
24.02.2018
11:15:34
Как вариант. Вообщем вопрос не о деталях реализации. А о том как жить когда в агрегате надо хранить ну очень много ивентов. Точнее даже не так. А как проектировать агрегаты так чтобы в них такого не случалось.

Maksim
24.02.2018
11:16:07
много - эт сколько?
кажется, очевидный вопрос про снепшоты задавать нет смысла) поэтому я всё ещё не понимаю в чём вопрос

Anton
24.02.2018
11:16:33
Больше чем поднимает память :)
Дело не гидрации, снапшоты не помогут

Google

Maksim
24.02.2018
11:16:51
почему?

Anton
24.02.2018
11:22:44
Ну вот смотри начали мы проектить системы и намутили агрегат Catalog. И будут у нас там лежать товары. И вроде все пока хорошо. Но потом оказывается что товаров будет много и нам чтобы востановить состояние агрегата Catalog надо ну очень много памяти. Да у нас есть снапшоты которые позволяют ускорить гидрацию. Но уже после нее агрегат Catalog таки занимает дочерта в памяти. Очевидно что систему мы спроектировали неправильно и агрегатом должно быть что-то другое. Очевидный вариант - Товар, но правильно ли это?
Тут приходят контексты на помощь конечно
Вообщем не могу я правильно это сформулировать... Надо вживую обсуждать.

Maksim
24.02.2018
11:27:23
я всё равно не понял почему при наличии снепшотов у тебя уходит много памяти(

Anton
24.02.2018
11:27:47
Потому что сам снапшот большой

Maksim
24.02.2018
11:28:18
а ты в нём хранишь список всех событий с их пейлодом?

Anton
24.02.2018
11:29:17
Нет конечно, сериализованный агрегат в какой-то там версии близкой к правде.

Maksim
24.02.2018
11:29:37
ну с чего ради он тогда большой, если ты просто стейт агрегата сериализовал?

Anton
24.02.2018
11:30:00
С того что в стейте дофига всего напихано...
И что конечно заранее мы такого не предполагали но на определенный момент так вышло

Sergey
24.02.2018
14:06:50

Andrew
24.02.2018
16:53:32
Что думаете по поводу
https://codengineering.ru/post/45
https://github.com/stomp-php/stomp-php

Maksim
24.02.2018
16:54:32
"Обычно событием является запрос какой-то информации"
т - терминология
как должно выглядеть событие, которое запрашивает результат?)
в целом, так и не понятно, о чём статья) то ли с amqp работать учат, то ли pub/sub показывают...

Гена
24.02.2018
18:46:12
Ненавижу ООП

Максим
24.02.2018
18:47:49

Google

Гена
24.02.2018
18:48:29

Serge
24.02.2018
19:16:09
А вы за выходные времени даром не теряли, я гляжу. Очень интересно было почитать, спасибо всем участникам дискуссии.

da horsie
24.02.2018
19:22:44

Гена
24.02.2018
19:28:29
Хммм... А кто - нибудь тусил на старом форуме фильма
}{oTT@Бb)4 ?

Alex
24.02.2018
19:54:27

Arky
24.02.2018
20:03:28

Sergey
24.02.2018
22:10:54
ненавижу гаечные ключи

Гена
24.02.2018
23:03:04
Ненавижу ненавидеть ненависть

Admin
ERROR: S client not available

Anton
25.02.2018
00:31:27
А я томат...

Bohdan
25.02.2018
08:59:35
на контрасте с предыдущей дискуссией выглядит интересно...

Roman
25.02.2018
09:04:25
Здравствуйте. если у меня есть класс, в котором 3 поля (свойства) являются ValueObject. Можно ли считать этот класс агрегатом?

F01134H
25.02.2018
09:05:31
да
ты же агрегируешь в нем объекты

Roman
25.02.2018
09:14:41
спасибо

F01134H
25.02.2018
09:23:12
вопрос в том, агрегат это или агрегатор)

Pavel
25.02.2018
09:28:29
О! и тут привет

Sergey
25.02.2018
10:03:34

Google

Sergey
25.02.2018
10:03:58
ну то есть плевать что внутри твоей сущности - агрегат это про бизнес операции и все вовлеченные части

Ad.x ??
25.02.2018
20:38:50
Сидел тут думал думал короче. И пришел к выводу что нормально спроектированное приложение по всем канонам ооп в пхп просто обречено на провал. И все из-за жизненного цикла приложухи. Короче с каждым запросом как птица феникс возрождается и потом снова умирает. Мало того что язык с большушим таким оверхедом сам по себе, так еще и это вот все жрет ресурс как не в себя
Взять к примеру Syllius да. Все там вроде очень красиво выглядит, Но сцук когда открываешь магазины, на нем реализованные и видишь отдачу хтмлки в 2-3 секунды... это очень удручает. Оно в принципе не способно конкурировать с легаси лапшой но отдающей туже страницу за 50мс.

Alex
25.02.2018
20:49:53
Да ладно, не всё так уж плохо

Maksim
25.02.2018
20:51:06
странный наброс) вся объектная лапша нынче даёт примерно +0.000000001 оверхеда) у тебя устаревшая инфа для наездов на пхп) версии ентак на 4

Sergey
25.02.2018
20:53:29

Maksim
25.02.2018
20:57:18
ох нихерасебе у него список зависимостей)

Dmitry
25.02.2018
20:59:04
запретить отдачу хтмл-ок пыхой, делов то)

Ad.x ??
25.02.2018
20:59:30

Maksim
25.02.2018
20:59:49

Ad.x ??
25.02.2018
21:00:03
при том

Maksim
25.02.2018
21:00:16
л - логика

Ad.x ??
25.02.2018
21:00:53
мне лень такие простые вещи объяснять сорян
сам подумай пожалуйста

Maksim
25.02.2018
21:01:36
вот я сомневаюсь, что кто-то здесь сможет увязать бенчмарки фреймворков и потерю производительности от ОО подхода)