@phpclubru

Страница 355 из 956
Maksim
25.10.2017
13:19:31
а потоки в эрланге ещё лучше)

но мы тут про пхп, мучаемся с пхп :)

Dmitry
25.10.2017
13:20:15
"превозмогая"?

Maksim
25.10.2017
13:21:26
Не знаю, как у вас дела обстоят, но я не особо парюсь. Просто сейчас отказался от модного mvc в сторону event-based микросервисных приложений. Разные языки (пых, го, джава), но одна шина.

Google
Pavel
25.10.2017
13:22:41
Шило на мыло

Я тихо ненавижу уже микросервисы :)

Mikhail
25.10.2017
13:23:14
Ну вы же понимаете это PHP ? а вы говорите о многопоточности

PHP не для этого

Dmitry
25.10.2017
13:23:52
А он "превозмог" ;)

Mikhail
25.10.2017
13:24:17
"Он" это кто?

Pavel
25.10.2017
13:24:23
Хотя event-based сравнивать с MVC не совсем корректно

Dmitry
25.10.2017
13:24:42
Хотя event-based сравнивать с MVC не совсем корректно
я вот решил не развивать эту тему ;)

Pavel
25.10.2017
13:25:05
Ну видимо имелся в виду некий монолит против микросервисов.

Maksim
25.10.2017
13:25:17
в cqrs/es связке в принципе нет возможности использовать mvc

только на уровне отдельного приложения под query bus

эти подходы сравнивать так же корректно, как и мягкое с тёплым. Тут согласен. Но выразить, видимо, верно не смог

Pavel
25.10.2017
13:26:50
Почему же, все CQRS/ES дела убираются в модельный слой, контроллер забирает результат и пихает во view. Чем не оно.

Google
Maksim
25.10.2017
13:27:10
откуда он результат забирает?)

Nikolay
25.10.2017
13:27:13
Всем привет, подскажите, что делаю не так <?if (!$isNewsView || !$isArticlesView ) { ?> <div class="page-title"> <h1><? $APPLICATION->ShowTitle ( false ) ?></h1> </div> <?}?>

Maksim
25.10.2017
13:27:18
вы правда понимаете что это за слова?

Nikolay
25.10.2017
13:27:21
Но конструкция не работает

!$isNewsView !$isArticlesView =1

Nikolay
25.10.2017
13:29:48
Немного не понял)

Pavel
25.10.2017
13:31:30
откуда он результат забирает?)
Вот отсюда https://github.com/prooph/event-sourcing/blob/master/examples/quickstart.php#L235

Maksim
25.10.2017
13:31:48
Почему же, все CQRS/ES дела убираются в модельный слой, контроллер забирает результат и пихает во view. Чем не оно.
При command (в контексте http это post/put/patch/delete) контроллер в принципе ничего не забирает) он вообще не нужен и от http можно/нужно избавиться. Кидается задача в очередь, демон её выполняет и записывает в результате что-то в read базу в том виде, в котором это нужно представлению (если совсем упрощённо расписывать схему). Контроллер нужен для query, что бы ползать в read базу

Pavel
25.10.2017
13:32:07
Все что там в корневом неймспейсе - это просто котнроллер, получаем данные и рендерим view

Maksim
25.10.2017
13:32:15
Вот отсюда https://github.com/prooph/event-sourcing/blob/master/examples/quickstart.php#L235
т.е. вы явно не понимаете что там происходит... печально :)

Pavel
25.10.2017
13:32:41
> от http можно/нужно избавиться.

Как ты от него избавишься? Предложишь пользователю ходить напрямую по AMQP протоколу? =)

Maksim
25.10.2017
13:33:44
зачем?) есть инструменты с быстрым i/o. Которые с удовольствием возьмут http запрос и положат в очередь

привет какая-нибудь нода

Pavel
25.10.2017
13:34:30
Причем тут php ?

Maksim
25.10.2017
13:34:33
она же потом из очереди заберёт эвент и отдаст его какому-нибудь ангуляру :)

при том, что все команды будут обработаны демоном где-то за кадром

Dmitry
25.10.2017
13:34:58
прикольный чувак. ;) он из cqrs+es целую инфраструктурную архитектуру вывел ;)

Google
Maksim
25.10.2017
13:35:50
вам явно виднее :)

Pavel
25.10.2017
13:36:20
Я же писал выше что MVC подход может вполне норм использоваться совместно с CQRS и с ES

Maksim
25.10.2017
13:36:24
прикольный чувак. ;) он из cqrs+es целую инфраструктурную архитектуру вывел ;)
cqrs/es - просто подход) если вы Грега Янга почитаете на досуге, поймёте откуда рождается такая архитектура

Pavel
25.10.2017
13:36:29
Они друг другу не мешают.

Pavel
25.10.2017
13:36:56
увы, нельзя
А мужики то и не знают, у которых годами так сайты крутятся )

Что они используют невозможный подход.

Maksim
25.10.2017
13:37:31
можно и ёжика сожрать. Сайт визитка закрутится и на таком.

Но генерация представлений, снапшотов, саги - всё идёт по звезде в таких условиях. Оно неюзабельно от слова совсем

Pavel
25.10.2017
13:38:04
Ну и не только визитка. И зачем сюда ноду приписывать.

Maksim
25.10.2017
13:38:26
затем, что есть понятие event store и read datavase

вы про event sourcing аще нихера не знаете, так зачем пытаетесь спорить?)

что быстрее сможет получить данные из read базы? пхп или нода?)

Pavel
25.10.2017
13:39:17
Кто быстрее побежит тот и получит.

Maksim
25.10.2017
13:39:39
почему у вас в примере данные берутся не из read базы, а из агрегата?) вы знаете как создаётся агрегат?

Dmitry
25.10.2017
13:39:43
Максим, проблема в том, что вы тоже нихера не знаете... вот в чем проблема. У вас какая-то каша в голове из паттернов проектирования, инфраструктуры и базвордов...

Dmitry
25.10.2017
13:40:28
не сомневаюсь, что вы так считаете

Maksim
25.10.2017
13:40:43
вот в примере выше товарищ показал, что он собирает агрегат и передаёт его во view часть. Гениально, но это не event sourcing

Google
Maksim
25.10.2017
13:41:56
т.е. давайте мы возьмум пустой агрегат, накатим на него N эвентов до ближайшего снапшота и отрендерим? гениально. Но смотрите дальше) у этих разрабов есть все части головоломки в репозитории

и почитайте Янга) поможет для понимания зачем и что используется.

Pavel
25.10.2017
13:42:51
> Гениально, но это не event sourcing А кто вам это сказал? Потому что так у Янга написано?

Maksim
25.10.2017
13:43:32
потому, что агрегат и представление - разные вещи. Потому, что есть 2 базы данных: операционная (event store) и с представлениями (read)

у этих парней это так же на месте. Просто вы не видете потому, что не понимаете о чём пытаетесь спорить

Pavel
25.10.2017
13:45:03
> есть 2 базы данных: операционная (event store) и с представлениями (read) Это где вообще такое написано?

Представление может хоть каждый раз заново вычисляться, хоть на триггерах работать.

Maksim
25.10.2017
13:46:53
Отлично. Т.е. мы берём query запрос, поднимаем агрегат, накатываем все эвенты, генерируем на основании агрегата представление, отдаём клиенту. и так каждый раз?)

Egor
25.10.2017
13:47:04
?

Pavel
25.10.2017
13:47:07
> Оно неюзабельно от слова совсем А что там юзабельно или нет - это ваши личные догадки которые не имеют отношения к реальности.

Maksim
25.10.2017
13:47:20
конечно) вам виднее

Dmitry
25.10.2017
13:47:35
Паш, харе тролить ;)

Pavel
25.10.2017
13:47:42
Отлично. Т.е. мы берём query запрос, поднимаем агрегат, накатываем все эвенты, генерируем на основании агрегата представление, отдаём клиенту. и так каждый раз?)
Да представьте себе так и работает. А когда в проекции хранится - это не более чем оптимиазция имплементации.

Maksim
25.10.2017
13:47:58
Так оно работает ток у вас, теоретика :)

Pavel
25.10.2017
13:48:27
Работает и кушать не просит. Значит имеет право на жизнь.

Dmitry
25.10.2017
13:48:50
Боже упаси меня от практика, который для cqrs+es нагородил ноду + асинхронность в пхп ;) оказывается, оно иначе не работает ;)

Maksim
25.10.2017
13:48:55
на сайтах визитках, конечно)

Pavel
25.10.2017
13:49:33
А вы как определяете метрику сайтовизиточности для системы?

Maksim
25.10.2017
13:50:43
по выполняемым задачам, кол-во поситителей и их действиям над системой. С любовью, ваш К.О.

Pavel
25.10.2017
13:51:23
Я не спорю что в кровавом энтерпрайзе там все хранится в 100500 облачных хранилищах и работает на джаве на сервере с 128GB оперативки. Но у нас же тут php - мир уюта и наколеночных проектов. Иногда они вырастают до больших, иногда так и остаются декоративными собачками.

Google
Maksim
25.10.2017
13:53:05
банальный вопрос: в рамках синхронной схемы как организовать саги?

как разделить выполнение задачи на несколько языков программирования?

яркий пример - гостовая криптография. Только джава, только хардкор.

ну либо сишарп

Dmitry
25.10.2017
13:57:21
Понимаешь в чем твоя проблема... CQRS - это просто паттерн. И областей применимости - куча. Хоть взаимодействие между агентами раздведки ;) Где ты подхватил идеи - я не знаю, но твое изложение "все в кучу поливая базвордами" говорит в общем не о твоем профессиоанлизме, а скорее о "хайпнутости".

Maksim
25.10.2017
13:58:11
Для модного мвс почему-то подряжают нжинкс, фпм и прочее всякое) а нода под рид базу - фу, изврат) Л - логикв

Dmitry
25.10.2017
13:58:11
cqrs es вполне используется на одном языке в одном приложении без всяких там "микросервисов". Зачем ты валишь все в кучу - не понимаю.

Adel
25.10.2017
13:58:20
ну тут у вас две крайности. Вы похоже не хотите отличать write модели от read моделей :) а товарищ... запутался в базвордах и технологиях.

был бы это форумный тред, я б его прикрыл

Dmitry
25.10.2017
13:58:41
Ну в том и отличие.. от форума ;)

Maksim
25.10.2017
14:00:23
Товарищ ни в чём не запутался) просто Дмитрий не очень представляет как оно работает) Вот уже и микросервисы не нужны стали) хорошо, чтл это не Го чатик)

Pavel
25.10.2017
14:01:04
Конечно стали не нужны, волна микросервисов уже прокатилась лет 15 назад по миру и ни к чему особо не привела.

С этим хайпом будет то же самое.

Maksim
25.10.2017
14:01:30
Окей) это ваше мнение

Dmitry
25.10.2017
14:01:35
cqrs вообще не имеет отношения к микросервисам es вообще не имеет отношения к микросервисам

Maksim
25.10.2017
14:02:04
Про спги мне так никто и не ответил)

Саги*

Dmitry
25.10.2017
14:02:27
то, что инфраструктурную архитектуру системы с ее ПО и микросервисами можно построить по принципам, описанным в этих паттернах - не значит, что эти паттерны "про это"

Pavel
25.10.2017
14:02:57
Про спги мне так никто и не ответил)
Ну я нашел синхронную библиотеку но чет не уверен чтоит ли ее кидать https://github.com/broadway/broadway-saga

Окей) это ваше мнение
Вот интересная статейка в тему https://habrahabr.ru/post/311208/

Maksim
25.10.2017
14:03:55
Не стоит. Лучше посмотрите что-нибудь вроде нсервайс баса

Сага из вашего примера не выберется из таймаута при реальном использованмм

Страница 355 из 956