yii2-cqrs (имплементация cqrs)

Выкладываем свои наработки
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: yii2-cqrs (имплементация cqrs)

Сообщение ElisDN »

zelenin писал(а):не хочу даже больше копаться в этом. удалю репозиторий.
Ага :)
ZeiN
Сообщения: 180
Зарегистрирован: 2012.06.06, 13:59

Re: yii2-cqrs (имплементация cqrs)

Сообщение ZeiN »

Кстати, по поводу command bus, тоже собрал на днях из наработок в один пакет свою версию шины, чтобы унифицировать ее между своими проектами. Может кому-то интересно:
https://github.com/trntv/yii2-command-bus
Версия базовая, но есть поддержка выполнения комманд в фоне (через Process ) и очереди + middlewares.

PS. Кстати, паралельное написание многими своих велосипедов говорит о том шина для yii вещь востребованная многими и хотелось бы увидеть хотя бы общие интерфейсы от core team, чтобы зоопарк был менее пестрым :-)

PSS. Хочется сделать нечто универсальное, чтобы к этому вопросу возвращатся пореже, поэтому любые мысли и юзкейсы будут очень полезны.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: yii2-cqrs (имплементация cqrs)

Сообщение zelenin »

ZeiN писал(а):Кстати, по поводу command bus, тоже собрал на днях из наработок в один пакет свою версию шины, чтобы унифицировать ее между своими проектами. Может кому-то интересно:
https://github.com/trntv/yii2-command-bus
Версия базовая, но есть поддержка выполнения комманд в фоне (через Process ) и очереди + middlewares.
ну вот хорошо, что сделал. Но опять же сделано по yiiшному, не solid.
ZeiN писал(а):PS. Кстати, паралельное написание многими своих велосипедов говорит о том шина для yii вещь востребованная многими и хотелось бы увидеть хотя бы общие интерфейсы от core team, чтобы зоопарк был менее пестрым :-)
я сделал for fun в качестве адаптации https://github.com/zelenin/cqrs для возможной дискуссии о хорошо и плохо. И отклика практически не получил, так что уверен, что вещь не востребована.
ZeiN писал(а):PSS. Хочется сделать нечто универсальное, чтобы к этому вопросу возвращатся пореже, поэтому любые мысли и юзкейсы будут очень полезны.
а мне как раз кажется что должно быть максимально простым, чтобы под конкретный проект шину расширить при необходимости. Например обработка асинхронных команд на очереди редиса - это явно проектозависимо.
ZeiN
Сообщения: 180
Зарегистрирован: 2012.06.06, 13:59

Re: yii2-cqrs (имплементация cqrs)

Сообщение ZeiN »

ну вот хорошо, что сделал. Но опять же сделано по yiiшному, не solid.
естественно, для всего остального есть и tactician и broadway и много других, но чтобы каждый раз не скрешивать их с йиишным DI, ServiceLocator или очередями (которые когда-то все же будут закончены :-)) надо делать по " yiiшному"
zelenin писал(а):а мне как раз кажется что должно быть максимально простым, чтобы под конкретный проект шину расширить при необходимости. Например обработка асинхронных команд на очереди редиса - это явно проектозависимо.
Ну как минимум интерфейс должен быть достаточным.
По поводу редиса, суть в сущестовании интерфейса QueuedCommand и BackgroundCommand, их использование, неиспользование или сочетание право, а не обязанность.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: yii2-cqrs (имплементация cqrs)

Сообщение zelenin »

ZeiN писал(а):
zelenin писал(а):а мне как раз кажется что должно быть максимально простым, чтобы под конкретный проект шину расширить при необходимости. Например обработка асинхронных команд на очереди редиса - это явно проектозависимо.
Ну как минимум интерфейс должен быть достаточным.
По поводу редиса, суть в сущестовании интерфейса QueuedCommand и BackgroundCommand, их использование, неиспользование или сочетание право, а не обязанность.
я про консольный контроллер, не про интерфейс. У тебя есть такие интерфейсы, только твоя абстрактная команда их не реализует, а является сразу винегретом.
Шина без интерфейса - сразу и синхронная и нет и все зашито.
Асинхронная команда владеет информацией о своей работе с очередью, хотя команда - это просто сообщение. Плюс сообщения у тебя еще и сами себя обрабатывают, а еще являются и мидлварью.
Шина не должна ничего возвращать - команду отправили в нее и забыли.

Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
ZeiN
Сообщения: 180
Зарегистрирован: 2012.06.06, 13:59

Re: yii2-cqrs (имплементация cqrs)

Сообщение ZeiN »

zelenin писал(а):Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
Странно ты подходиш к вопросу, паттерны и "академический стиль" есть результат удобства и целесообразности, а не вещь сама в себе. self-handling комманды, вещь удобная, потому и используемая, в том же laravel. Регистрировать под каждую команду хендлер или городить магические локаторы академичнее? ну ок.
Шина не должна ничего возвращать - команду отправили в нее и забыли.
спорный момент, не один из подходов "возвращать/не возвращать", не окончательный. Да и большинство имплементаций все же возвращает результат.
не заслуживает даже быть рассматриваемой для участия в каком-то проекте
да ну что вы говорите? потому что... что?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: yii2-cqrs (имплементация cqrs)

Сообщение zelenin »

ZeiN писал(а):
zelenin писал(а):Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
Странно ты подходиш к вопросу, паттерны и "академический стиль" есть результат удобства и целесообразности, а не вещь сама в себе. self-handling комманды, вещь удобная, потому и используемая, в том же laravel. Регистрировать под каждую команду хендлер или городить магические локаторы академичнее? ну ок.
Шина не должна ничего возвращать - команду отправили в нее и забыли.
спорный момент, не один из подходов "возвращать/не возвращать", не окончательный.
не заслуживает даже быть рассматриваемой для участия в каком-то проекте
да ну что вы говорите? потому что... что?
спорить не буду. это опять очередной спор типа этого viewtopic.php?f=26&t=34859
один говорит о пользе solid, другой говорит о вопросах целесообразности, первый начинает с аргументами показывать целесообразность, второй сливается, поскольку солид для него - это абстрактные "паттерны и академический стиль", а не что-то о чем он имеет практическое представление.
ZeiN
Сообщения: 180
Зарегистрирован: 2012.06.06, 13:59

Re: yii2-cqrs (имплементация cqrs)

Сообщение ZeiN »

zelenin писал(а):
ZeiN писал(а):
zelenin писал(а):Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
Странно ты подходиш к вопросу, паттерны и "академический стиль" есть результат удобства и целесообразности, а не вещь сама в себе. self-handling комманды, вещь удобная, потому и используемая, в том же laravel. Регистрировать под каждую команду хендлер или городить магические локаторы академичнее? ну ок.
Шина не должна ничего возвращать - команду отправили в нее и забыли.
спорный момент, не один из подходов "возвращать/не возвращать", не окончательный.
не заслуживает даже быть рассматриваемой для участия в каком-то проекте
да ну что вы говорите? потому что... что?
поскольку солид для него - это абстрактные "паттерны и академический стиль", а не что-то о чем он имеет практическое представление.
все же тебя немного заносит на поворотах
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: yii2-cqrs (имплементация cqrs)

Сообщение zelenin »

ZeiN писал(а):все же тебя немного заносит на поворотах
ну вот и хорошо. подтред закрыт )
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: yii2-cqrs (имплементация cqrs)

Сообщение rugabarbo »

SOLID, DRY, SL, CQRS, DDD, программирование на событиях и прочее академическое барахло с практическим удобством вообще никак не связано :mrgreen: Всё это удел Enterprise-решений, где иначе никак (где не получится управлять сложностью проекта и командой разработки без полного разделения вещей и строгих стандартов).

Зачем использовать всё это в личных/небольших наработках, которыми занимаются 1.5 программиста, я не понимаю :mrgreen: Какая-то разновидность мазохизма.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: yii2-cqrs (имплементация cqrs)

Сообщение zelenin »

rugabarbo писал(а):SOLID, DRY, SL, CQRS, DDD, программирование на событиях и прочее академическое барахло с практическим удобством вообще никак не связано :mrgreen: Всё это удел Enterprise-решений, где иначе никак (где не получится управлять сложностью проекта и командой разработки без полного разделения вещей и строгих стандартов).
только ddd вещь достаточно академичная и редко используется. Все остальное используется практически всегда и везде на проектах чуть больше чем маленький.
Опять же: компетенция yii-сообщества такова, что программисты yii не делают сильно развитых проектов. Поэтому дешевле в 5 местах исправить говнокод при изменении условий, чем заранее абстрагироваться.
rugabarbo писал(а):Зачем использовать всё это в личных/небольших наработках, которыми занимаются 1.5 программиста, я не понимаю :mrgreen: Какая-то разновидность мазохизма.
именно это я и написал:
в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: yii2-cqrs (имплементация cqrs)

Сообщение ElisDN »

rugabarbo писал(а):...и прочее академическое барахло с практическим удобством вообще никак не связано...
Да, прямолинейный и проверенный веками подход "фигак, фигак и по FTP в продакшн" действительно проще. И сторонников у него заметно больше. Счастливые люди... Не заморачиваются с VCS, CI, Composer, LESS, миграциями...
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: yii2-cqrs (имплементация cqrs)

Сообщение samdark »

И не надо заморачиваться, если задача того не стоит. Я сам когда делаю что-то очень простое особо не парюсь. Единственное, что я вижу в этом плохого — отсутствие практики. То есть когда попадётся что-то действительно сложное, оно может поставить фанатичного адепта простоты, никогда не делавшего абстракций, в тупик.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: yii2-cqrs (имплементация cqrs)

Сообщение ElisDN »

Можно всё. Лишь бы до такого не дошло :) :

Изображение
ZeiN
Сообщения: 180
Зарегистрирован: 2012.06.06, 13:59

Re: yii2-cqrs (имплементация cqrs)

Сообщение ZeiN »

Sam Dark писал(а):И не надо заморачиваться, если задача того не стоит. Я сам когда делаю что-то очень простое особо не парюсь. Единственное, что я вижу в этом плохого — отсутствие практики. То есть когда попадётся что-то действительно сложное, оно может поставить фанатичного адепта простоты, никогда не делавшего абстракций, в тупик.
с этим не стоит сильно заморачиватся, только когда ты уже умеешь, понимаешь и осознаешь стоит ли в этом месте строго придерживатся принципов, например, solid или можно немного отступить в угоду скорости, простоте. Такое решение должно быть осознаным, но чаще всего это въедается на уровне подсознания и отступить от них становится довольно сложно
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: yii2-cqrs (имплементация cqrs)

Сообщение zelenin »

ZeiN писал(а):
Sam Dark писал(а):И не надо заморачиваться, если задача того не стоит. Я сам когда делаю что-то очень простое особо не парюсь. Единственное, что я вижу в этом плохого — отсутствие практики. То есть когда попадётся что-то действительно сложное, оно может поставить фанатичного адепта простоты, никогда не делавшего абстракций, в тупик.
с этим не стоит сильно заморачиватся, только когда ты уже умеешь, понимаешь и осознаешь стоит ли в этом месте строго придерживатся принципов, например, solid или можно немного отступить в угоду скорости, простоте. Такое решение должно быть осознаным, но чаще всего это въедается на уровне подсознания и отступить от них становится довольно сложно
вот именно. а solid можно не придерживаться, когда твое приложение заведомо будет состоять из 3-5 контроллеров, без мыслей о дальнейшем развитии. В реальном проекте по крайней мере SOL всегда должен быть, а ID для более крупных.
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: yii2-cqrs (имплементация cqrs)

Сообщение lynicidn »

все дело в соли
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: yii2-cqrs (имплементация cqrs)

Сообщение ElisDN »

- В чём соль, бро?
- В соли :)
Ответить