Size: a a a

2020 September 24

SP

Sergey Protko in symfony
Cqrs имеет смысл там где конкурентный доступ к ресурсам. Где есть вероятность гонок

Event sourcing нужен там где есть процессы основанные на событиях.

Для cqrs не обязательно делать все эти шины и т.д. (особо если у тебя это будет выполняться в контексте запроса а не через очередь).

Для es cqrs обязательно в силу того как работает врайт модель (нельзя читать стэйт из врайт модели иначе получишь не консистентный стэйт)

Cqrs хорош и сам по себе, но повторюсь - тольео там где есть гонки. Иначе простой круд с table gateway подходит больше
источник

VS

Vlad Sobenko in symfony
Sergey Protko
Cqrs имеет смысл там где конкурентный доступ к ресурсам. Где есть вероятность гонок

Event sourcing нужен там где есть процессы основанные на событиях.

Для cqrs не обязательно делать все эти шины и т.д. (особо если у тебя это будет выполняться в контексте запроса а не через очередь).

Для es cqrs обязательно в силу того как работает врайт модель (нельзя читать стэйт из врайт модели иначе получишь не консистентный стэйт)

Cqrs хорош и сам по себе, но повторюсь - тольео там где есть гонки. Иначе простой круд с table gateway подходит больше
И доктрина не нужна во 2м случае?
источник

SP

Sergey Protko in symfony
Vlad Sobenko
И доктрина не нужна во 2м случае?
Второй это там где изи круд? Хз, она в теории там может чего упростить но в целом доктрина вообще не нужна
источник

T🐜

The Ant 🐜 in symfony
Щас маленько вам ржаки накину в чятике.
В общем в контроллерах куча кода:
https://pastebin.com/ranGGGD9
Редактировать не надо, либо вставка, либо чтение. Вот и подумал, распихаю все это по командам (замету мусор под ковер :D). Пока сойдет, наверное. И встал вопрос что юзать. Хватит ли мне этого мессанжара или нет. По описанному функционалу в доках вижу что хватает. Но блин.. сомнения, как обычно :(
источник

SP

Sergey Protko in symfony
Третья выйдет может будет полезной
источник

VS

Vlad Sobenko in symfony
The Ant 🐜
Щас маленько вам ржаки накину в чятике.
В общем в контроллерах куча кода:
https://pastebin.com/ranGGGD9
Редактировать не надо, либо вставка, либо чтение. Вот и подумал, распихаю все это по командам (замету мусор под ковер :D). Пока сойдет, наверное. И встал вопрос что юзать. Хватит ли мне этого мессанжара или нет. По описанному функционалу в доках вижу что хватает. Но блин.. сомнения, как обычно :(
Хотя модель выдели. Какой нах cqrs.
источник

VM

Volodymyr Melko in symfony
The Ant 🐜
Щас маленько вам ржаки накину в чятике.
В общем в контроллерах куча кода:
https://pastebin.com/ranGGGD9
Редактировать не надо, либо вставка, либо чтение. Вот и подумал, распихаю все это по командам (замету мусор под ковер :D). Пока сойдет, наверное. И встал вопрос что юзать. Хватит ли мне этого мессанжара или нет. По описанному функционалу в доках вижу что хватает. Но блин.. сомнения, как обычно :(
не по сабжу, но мне всегда было интересно в чем смысл таких сервисов?
$dd = new DeviceDetector($userAgent);
$dd->setCache(new PSR6Bridge($cache));
$dd->parse();

if ($dd->isBot()) {
    return new JsonResponse('');
}

почему нельзя кеш передать в конструктор (привет DI) и сделать сам сервис синглтоном даже?
и почему потом не сделать $dd->isBot($userAgent);
источник

VM

Volodymyr Melko in symfony
The Ant 🐜
Щас маленько вам ржаки накину в чятике.
В общем в контроллерах куча кода:
https://pastebin.com/ranGGGD9
Редактировать не надо, либо вставка, либо чтение. Вот и подумал, распихаю все это по командам (замету мусор под ковер :D). Пока сойдет, наверное. И встал вопрос что юзать. Хватит ли мне этого мессанжара или нет. По описанному функционалу в доках вижу что хватает. Но блин.. сомнения, как обычно :(
и тогда в аргументы контролера прилетит готовый DeviceDetector у которого ты вызовешь один метод
источник

T🐜

The Ant 🐜 in symfony
Volodymyr Melko
не по сабжу, но мне всегда было интересно в чем смысл таких сервисов?
$dd = new DeviceDetector($userAgent);
$dd->setCache(new PSR6Bridge($cache));
$dd->parse();

if ($dd->isBot()) {
    return new JsonResponse('');
}

почему нельзя кеш передать в конструктор (привет DI) и сделать сам сервис синглтоном даже?
и почему потом не сделать $dd->isBot($userAgent);
потому что либа не моя, и как видишь в конструктор передается юзерагент.
источник

T🐜

The Ant 🐜 in symfony
можно конечно адаптер сделать, но мне лень :)
источник

VS

Vlad Sobenko in symfony
Volodymyr Melko
не по сабжу, но мне всегда было интересно в чем смысл таких сервисов?
$dd = new DeviceDetector($userAgent);
$dd->setCache(new PSR6Bridge($cache));
$dd->parse();

if ($dd->isBot()) {
    return new JsonResponse('');
}

почему нельзя кеш передать в конструктор (привет DI) и сделать сам сервис синглтоном даже?
и почему потом не сделать $dd->isBot($userAgent);
Эти любители DI... Ты видишь там стейт $userAgent. Какой DI?
источник

VM

Volodymyr Melko in symfony
The Ant 🐜
потому что либа не моя, и как видишь в конструктор передается юзерагент.
ну раз либа не твоя, то конечно ничего не сделать =)
источник

VS

Vlad Sobenko in symfony
Volodymyr Melko
ну раз либа не твоя, то конечно ничего не сделать =)
А чего плохого в new ?
источник

VM

Volodymyr Melko in symfony
Vlad Sobenko
А чего плохого в new ?
ничего, кроме того, что его нужно писать и тестами не покрыть
источник

DT

Dmitriy Tkachenko in symfony
Vlad Sobenko
А чего плохого в new ?
высокий каплинг с нулевым кохиженом?
источник

VS

Vlad Sobenko in symfony
Volodymyr Melko
ничего, кроме того, что его нужно писать и тестами не покрыть
С чего это?
источник

VS

Vlad Sobenko in symfony
Dmitriy Tkachenko
высокий каплинг с нулевым кохиженом?
Обьекты всё равно где то создаются. Этого не избежать. Если обьект со стейтом, то это будет прямо в коде
источник

VM

Volodymyr Melko in symfony
Vlad Sobenko
С чего это?
ну типа если это не девайс детектор, а сервис который ходит по сети, то что ты будешь делать?
источник

T🐜

The Ant 🐜 in symfony
Vlad Sobenko
Хотя модель выдели. Какой нах cqrs.
зачем модель? дтошек наклепаю потом и все. Клиентов под кликхаус на пыху почти нету. Поэтому сырые запросы. Крч так сойдет )
источник

DT

Dmitriy Tkachenko in symfony
Vlad Sobenko
Обьекты всё равно где то создаются. Этого не избежать. Если обьект со стейтом, то это будет прямо в коде
всеравно все конвертится в машинный код, может сразу на нем писать?
источник