Size: a a a

2020 September 24

ПГ

Павел Г. in symfony
Dmitry
это интересный вопрос, cqrs своей сутью говорит нам о том что мол пацаны, каждый запрос на сервер может делать что-то одно - либо читать, либо писать
это вроде про cqs
источник

ПГ

Павел Г. in symfony
хотя я сам путаюсь в этом.
источник

DT

Dmitriy Tkachenko in symfony
CQS (Command Query Separation) and CQRS (Command Query Responsibility Segregation) are very much related. You can think of CQS as being at the class or component level, while CQRS is more at the bounded context level.

I tend to think of CQS as being at the micro level, and CQRS at the macro level.

CQS prescribes separate methods for querying from or writing to a model: the query doesn't mutate state, while the command mutates state but does not have a return value. It was devised by Bertrand Meyer as part of his pioneering work on the Eiffel programming language.

CQRS prescribes a similar approach, except it's more of a path through your system. A query request takes a separate path from a command. The query returns data without altering the underlying system; the command alters the system but does not return data.

Greg Young put together a pretty thorough write-up of what CQRS is some years back, and goes into how CQRS is an evolution of CQS. This document introduced me to CQRS some years ago, and I find it a still very useful reference document.
источник

D

Dmitry in symfony
они там довольно таки одинаковые, мне понравилась обьяснение их различий, не помню где видел
cqs это больше на микро уровне - типа Controller:read Controller:write
а вот cqrs это больше на макро уровне - чтобы каждый запрос на чтение не менял никакие данные вообще
источник

D

Dmitry in symfony
Dmitriy Tkachenko
CQS (Command Query Separation) and CQRS (Command Query Responsibility Segregation) are very much related. You can think of CQS as being at the class or component level, while CQRS is more at the bounded context level.

I tend to think of CQS as being at the micro level, and CQRS at the macro level.

CQS prescribes separate methods for querying from or writing to a model: the query doesn't mutate state, while the command mutates state but does not have a return value. It was devised by Bertrand Meyer as part of his pioneering work on the Eiffel programming language.

CQRS prescribes a similar approach, except it's more of a path through your system. A query request takes a separate path from a command. The query returns data without altering the underlying system; the command alters the system but does not return data.

Greg Young put together a pretty thorough write-up of what CQRS is some years back, and goes into how CQRS is an evolution of CQS. This document introduced me to CQRS some years ago, and I find it a still very useful reference document.
во, именно это я и читал 🙂
источник

D

Dmitry in symfony
поэтому лично мне кажется что откуда читать данные не очень важно, из мастера (write) или из реплики (read)
но нужно учитывать возможность разбега мастера и реплики
источник

DT

Dmitriy Tkachenko in symfony
все о чем говорит cq(r)s - это то что есть команды, а есть запросы на чтение. Что откуда и как читать - не предмет этого принципа
источник

D

Dmitry in symfony
я лично предпочитаю все читать из мастера(самой модели) для круд
для остального читать реплику(read)
хотя в 99% случаев это одна и та же база 🙂
источник

ПГ

Павел Г. in symfony
Dmitry
они там довольно таки одинаковые, мне понравилась обьяснение их различий, не помню где видел
cqs это больше на микро уровне - типа Controller:read Controller:write
а вот cqrs это больше на макро уровне - чтобы каждый запрос на чтение не менял никакие данные вообще
Я просто еще по этой статье сужу, но опять таки каждый волен как хочет понимать:
https://habr.com/ru/post/347908/

Раздел: Можно ли write-подсистеме использовать read-подсистему и наоборот?
источник

ПГ

Павел Г. in symfony
короче я хз, рано мне. Мне круды писать)))
источник

D

Dmitry in symfony
Павел Г.
Я просто еще по этой статье сужу, но опять таки каждый волен как хочет понимать:
https://habr.com/ru/post/347908/

Раздел: Можно ли write-подсистеме использовать read-подсистему и наоборот?
У каждого правила, впрочем, есть исключения. В том же видео минутой раньше Грег приводит пример: «вам требуется загрузить миллионы сущностей, чтобы сделать расчет. Вы будете грузить все эти данные в оперативную память или выполните оптимальный запрос?». Если в read — подсистеме уже есть подходящий query handler и вы используете один источник данных никто не посадит вас в тюрьму за вызов query из обработчика команды. Просто держите в голове аргументы против этого.

из этой же статьи 🙂
источник

ПГ

Павел Г. in symfony
:)
источник

D

Dmitry in symfony
никакая статья не является догматом или аксиомой
источник

D

Dmitry in symfony
но очень важно чтобы любое решение вы могли обосновать, хотя бы для себя и коллег
источник

ПГ

Павел Г. in symfony
Dmitry
никакая статья не является догматом или аксиомой
Согласен.
источник

D

Dmitry in symfony
вы можете написать весь код в контроллере и потом сказать
ребята, я сделал так потому что это заняло у меня в 10 раз меньше времени, это не будет поддерживаться и мы заработали на этом 100к
всем будет плевать
источник

D

Dmitry in symfony
либо же в нашем случае
я использовал рид модель потому что читать из врайта не хочу, дабы его не нагружать, я знаю что реплика может отстать, я готов с этим смириться потому что....
источник

D

Dmitry in symfony
и все, это ваше мнение, ваше принятое решение, ваша ответственность
никто никогда не будет вас за это ругать, не соглашаться будут, но ругать за взвешенное решение - никогда
источник

ПГ

Павел Г. in symfony
Соглсен, что под каждую задачу свое решение.
источник

T🐜

The Ant 🐜 in symfony
Так что, есть годные реализации команд под симфу, или юзать мессенжер пакет?
источник