Агаzelenin писал(а):не хочу даже больше копаться в этом. удалю репозиторий.
yii2-cqrs (имплементация cqrs)
Re: yii2-cqrs (имплементация cqrs)
Re: yii2-cqrs (имплементация cqrs)
Кстати, по поводу command bus, тоже собрал на днях из наработок в один пакет свою версию шины, чтобы унифицировать ее между своими проектами. Может кому-то интересно:
https://github.com/trntv/yii2-command-bus
Версия базовая, но есть поддержка выполнения комманд в фоне (через Process ) и очереди + middlewares.
PS. Кстати, паралельное написание многими своих велосипедов говорит о том шина для yii вещь востребованная многими и хотелось бы увидеть хотя бы общие интерфейсы от core team, чтобы зоопарк был менее пестрым
PSS. Хочется сделать нечто универсальное, чтобы к этому вопросу возвращатся пореже, поэтому любые мысли и юзкейсы будут очень полезны.
https://github.com/trntv/yii2-command-bus
Версия базовая, но есть поддержка выполнения комманд в фоне (через Process ) и очереди + middlewares.
PS. Кстати, паралельное написание многими своих велосипедов говорит о том шина для yii вещь востребованная многими и хотелось бы увидеть хотя бы общие интерфейсы от core team, чтобы зоопарк был менее пестрым
PSS. Хочется сделать нечто универсальное, чтобы к этому вопросу возвращатся пореже, поэтому любые мысли и юзкейсы будут очень полезны.
Re: yii2-cqrs (имплементация cqrs)
ну вот хорошо, что сделал. Но опять же сделано по yiiшному, не solid.ZeiN писал(а):Кстати, по поводу command bus, тоже собрал на днях из наработок в один пакет свою версию шины, чтобы унифицировать ее между своими проектами. Может кому-то интересно:
https://github.com/trntv/yii2-command-bus
Версия базовая, но есть поддержка выполнения комманд в фоне (через Process ) и очереди + middlewares.
я сделал for fun в качестве адаптации https://github.com/zelenin/cqrs для возможной дискуссии о хорошо и плохо. И отклика практически не получил, так что уверен, что вещь не востребована.ZeiN писал(а):PS. Кстати, паралельное написание многими своих велосипедов говорит о том шина для yii вещь востребованная многими и хотелось бы увидеть хотя бы общие интерфейсы от core team, чтобы зоопарк был менее пестрым
а мне как раз кажется что должно быть максимально простым, чтобы под конкретный проект шину расширить при необходимости. Например обработка асинхронных команд на очереди редиса - это явно проектозависимо.ZeiN писал(а):PSS. Хочется сделать нечто универсальное, чтобы к этому вопросу возвращатся пореже, поэтому любые мысли и юзкейсы будут очень полезны.
Re: yii2-cqrs (имплементация cqrs)
естественно, для всего остального есть и tactician и broadway и много других, но чтобы каждый раз не скрешивать их с йиишным DI, ServiceLocator или очередями (которые когда-то все же будут закончены ) надо делать по " yiiшному"ну вот хорошо, что сделал. Но опять же сделано по yiiшному, не solid.
Ну как минимум интерфейс должен быть достаточным.zelenin писал(а):а мне как раз кажется что должно быть максимально простым, чтобы под конкретный проект шину расширить при необходимости. Например обработка асинхронных команд на очереди редиса - это явно проектозависимо.
По поводу редиса, суть в сущестовании интерфейса QueuedCommand и BackgroundCommand, их использование, неиспользование или сочетание право, а не обязанность.
Re: yii2-cqrs (имплементация cqrs)
я про консольный контроллер, не про интерфейс. У тебя есть такие интерфейсы, только твоя абстрактная команда их не реализует, а является сразу винегретом.ZeiN писал(а):Ну как минимум интерфейс должен быть достаточным.zelenin писал(а):а мне как раз кажется что должно быть максимально простым, чтобы под конкретный проект шину расширить при необходимости. Например обработка асинхронных команд на очереди редиса - это явно проектозависимо.
По поводу редиса, суть в сущестовании интерфейса QueuedCommand и BackgroundCommand, их использование, неиспользование или сочетание право, а не обязанность.
Шина без интерфейса - сразу и синхронная и нет и все зашито.
Асинхронная команда владеет информацией о своей работе с очередью, хотя команда - это просто сообщение. Плюс сообщения у тебя еще и сами себя обрабатывают, а еще являются и мидлварью.
Шина не должна ничего возвращать - команду отправили в нее и забыли.
Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
Re: yii2-cqrs (имплементация cqrs)
Странно ты подходиш к вопросу, паттерны и "академический стиль" есть результат удобства и целесообразности, а не вещь сама в себе. self-handling комманды, вещь удобная, потому и используемая, в том же laravel. Регистрировать под каждую команду хендлер или городить магические локаторы академичнее? ну ок.zelenin писал(а):Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
спорный момент, не один из подходов "возвращать/не возвращать", не окончательный. Да и большинство имплементаций все же возвращает результат.Шина не должна ничего возвращать - команду отправили в нее и забыли.
да ну что вы говорите? потому что... что?не заслуживает даже быть рассматриваемой для участия в каком-то проекте
Re: yii2-cqrs (имплементация cqrs)
спорить не буду. это опять очередной спор типа этого viewtopic.php?f=26&t=34859ZeiN писал(а):Странно ты подходиш к вопросу, паттерны и "академический стиль" есть результат удобства и целесообразности, а не вещь сама в себе. self-handling комманды, вещь удобная, потому и используемая, в том же laravel. Регистрировать под каждую команду хендлер или городить магические локаторы академичнее? ну ок.zelenin писал(а):Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
спорный момент, не один из подходов "возвращать/не возвращать", не окончательный.Шина не должна ничего возвращать - команду отправили в нее и забыли.
да ну что вы говорите? потому что... что?не заслуживает даже быть рассматриваемой для участия в каком-то проекте
один говорит о пользе solid, другой говорит о вопросах целесообразности, первый начинает с аргументами показывать целесообразность, второй сливается, поскольку солид для него - это абстрактные "паттерны и академический стиль", а не что-то о чем он имеет практическое представление.
Re: yii2-cqrs (имплементация cqrs)
все же тебя немного заносит на поворотахzelenin писал(а):поскольку солид для него - это абстрактные "паттерны и академический стиль", а не что-то о чем он имеет практическое представление.ZeiN писал(а):Странно ты подходиш к вопросу, паттерны и "академический стиль" есть результат удобства и целесообразности, а не вещь сама в себе. self-handling комманды, вещь удобная, потому и используемая, в том же laravel. Регистрировать под каждую команду хендлер или городить магические локаторы академичнее? ну ок.zelenin писал(а):Я за последние месяцы перелопатил кучу различного кода, в том числе видел около десятка различные реализаций шин. Все они были написаны достаточно качественно, некоторые с косяками (на самом деле косяк могу вспомнить один - self-handling-command как и у тебя), большинство нет, но все были выдержаны в академичном стиле исключительно по solid. Оценки качества дам скажем от 7 до 10 по 10-бальной шкале. Твой же код - это худшая имплементация из мною виденных (3/10) и в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте. Лапша. Не обижайся.
спорный момент, не один из подходов "возвращать/не возвращать", не окончательный.Шина не должна ничего возвращать - команду отправили в нее и забыли.
да ну что вы говорите? потому что... что?не заслуживает даже быть рассматриваемой для участия в каком-то проекте
Re: yii2-cqrs (имплементация cqrs)
ну вот и хорошо. подтред закрыт )ZeiN писал(а):все же тебя немного заносит на поворотах
Re: yii2-cqrs (имплементация cqrs)
SOLID, DRY, SL, CQRS, DDD, программирование на событиях и прочее академическое барахло с практическим удобством вообще никак не связано Всё это удел Enterprise-решений, где иначе никак (где не получится управлять сложностью проекта и командой разработки без полного разделения вещей и строгих стандартов).
Зачем использовать всё это в личных/небольших наработках, которыми занимаются 1.5 программиста, я не понимаю Какая-то разновидность мазохизма.
Зачем использовать всё это в личных/небольших наработках, которыми занимаются 1.5 программиста, я не понимаю Какая-то разновидность мазохизма.
Re: yii2-cqrs (имплементация cqrs)
только ddd вещь достаточно академичная и редко используется. Все остальное используется практически всегда и везде на проектах чуть больше чем маленький.rugabarbo писал(а):SOLID, DRY, SL, CQRS, DDD, программирование на событиях и прочее академическое барахло с практическим удобством вообще никак не связано Всё это удел Enterprise-решений, где иначе никак (где не получится управлять сложностью проекта и командой разработки без полного разделения вещей и строгих стандартов).
Опять же: компетенция yii-сообщества такова, что программисты yii не делают сильно развитых проектов. Поэтому дешевле в 5 местах исправить говнокод при изменении условий, чем заранее абстрагироваться.
именно это я и написал:rugabarbo писал(а):Зачем использовать всё это в личных/небольших наработках, которыми занимаются 1.5 программиста, я не понимаю Какая-то разновидность мазохизма.
в таком виде не заслуживает даже быть рассматриваемой для участия в каком-то проекте
Re: yii2-cqrs (имплементация cqrs)
Да, прямолинейный и проверенный веками подход "фигак, фигак и по FTP в продакшн" действительно проще. И сторонников у него заметно больше. Счастливые люди... Не заморачиваются с VCS, CI, Composer, LESS, миграциями...rugabarbo писал(а):...и прочее академическое барахло с практическим удобством вообще никак не связано...
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: yii2-cqrs (имплементация cqrs)
И не надо заморачиваться, если задача того не стоит. Я сам когда делаю что-то очень простое особо не парюсь. Единственное, что я вижу в этом плохого — отсутствие практики. То есть когда попадётся что-то действительно сложное, оно может поставить фанатичного адепта простоты, никогда не делавшего абстракций, в тупик.
Нравится Yii? Давайте сделаем его лучше!.
Re: yii2-cqrs (имплементация cqrs)
с этим не стоит сильно заморачиватся, только когда ты уже умеешь, понимаешь и осознаешь стоит ли в этом месте строго придерживатся принципов, например, solid или можно немного отступить в угоду скорости, простоте. Такое решение должно быть осознаным, но чаще всего это въедается на уровне подсознания и отступить от них становится довольно сложноSam Dark писал(а):И не надо заморачиваться, если задача того не стоит. Я сам когда делаю что-то очень простое особо не парюсь. Единственное, что я вижу в этом плохого — отсутствие практики. То есть когда попадётся что-то действительно сложное, оно может поставить фанатичного адепта простоты, никогда не делавшего абстракций, в тупик.
Re: yii2-cqrs (имплементация cqrs)
вот именно. а solid можно не придерживаться, когда твое приложение заведомо будет состоять из 3-5 контроллеров, без мыслей о дальнейшем развитии. В реальном проекте по крайней мере SOL всегда должен быть, а ID для более крупных.ZeiN писал(а):с этим не стоит сильно заморачиватся, только когда ты уже умеешь, понимаешь и осознаешь стоит ли в этом месте строго придерживатся принципов, например, solid или можно немного отступить в угоду скорости, простоте. Такое решение должно быть осознаным, но чаще всего это въедается на уровне подсознания и отступить от них становится довольно сложноSam Dark писал(а):И не надо заморачиваться, если задача того не стоит. Я сам когда делаю что-то очень простое особо не парюсь. Единственное, что я вижу в этом плохого — отсутствие практики. То есть когда попадётся что-то действительно сложное, оно может поставить фанатичного адепта простоты, никогда не делавшего абстракций, в тупик.
Re: yii2-cqrs (имплементация cqrs)
все дело в соли
Re: yii2-cqrs (имплементация cqrs)
- В чём соль, бро?
- В соли
- В соли