Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
вообщем делаю для себя демо с помощью cqrs + инжектирование. Столкнулся с не понимаем с моей стороны куда идти. Допустим вот так выглядел бы контролер с инжектированием каждой команды( аналогично с query) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. меня пугает кол-во параметров в инжектирования, а если там 20-30 экшенов и на каждый своя команда или запрос? я может не так понимаю cqrs? еще по идее я также должен конкретную SomeModel подать в конкретный SomeCommand в конструктор вроде как, тогда я так понимаю можно сделать что то типо сервиса который по модели будет находить команду и будет прокидывать в конструктор команды модель, но я что то не соображу как эт сделать лучше. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. подсобите в кое направление копать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 16:36 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, Я использую в базовом контроллере две строчки Код: c# 1. 2. Код action Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 09:38 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
коллеги Vladimir A, skyANA эт я читал но у меня в голове каша после прочитанного, поэтому я и написал тут чтоб вы на моем примере мне пояснили что не так, если не сложно. big-duke, но вы команду создаете напрямую через вызов PreUploadPersonPhotoCommand, по идее надо эт дело через инжектирование. по этому я и испросил как реализовать к примеру мапинг команды на дто сущности по лучше и прокидыванием в конструктор команды. поясните вот эт CommandDispatcher.CanDispatch(command) зачем эт проверка? п.с. кстати по поводу ошибок я вот думал что можно просто в базовом контролере переопределить методы к примеру для json Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. но почему то многие говорят что выкидывание ошибок эт плохо, но на мой взгляд из глубин бизнеслогики - эт единственный способ указать что не так, а уже на веб сайте, веб апи консоли или чем еще обработать как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:25 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, в статье, на которую я сослался, описаны два способа маршрутизации. Лично я пользуюсь тем, что через IoC-конейнер. А так как у меня StructureMap, то зашиваюсь не на контекст, а на имя. Регистрация в контейнере: Код: c# 1. Получение объекта и выполнение: Код: c# 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 14:06 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Парни, у меня вопрос по теме. А зачем всё это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 11:14 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Агнец за бортом, что конкретно Вас смущает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 11:51 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Агнец за бортомПарни, у меня вопрос по теме. А зачем всё это? Видишь ли, хелловордл теперь не по феншую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 12:06 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
skyANAАгнец за бортом, что конкретно Вас смущает? Зачем эти слои при пайплайне "запрос-обработка-ответ". В чем выгода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 12:51 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Агнец за бортомskyANAАгнец за бортом, что конкретно Вас смущает? Зачем эти слои при пайплайне "запрос-обработка-ответ". В чем выгода? Будет выгода, и какая, или не будет - это надо смотреть на конкретном проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 14:01 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Вот например точка зрения Microsoft: Command and Query Responsibility Segregation (CQRS)Segregate operations that read data from operations that update data by using separate interfaces. This can maximize performance, scalability, and security. Supports the evolution of the system over time through higher flexibility, and prevent update commands from causing merge conflicts at the domain level. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 14:06 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Также с микросервисами зачастую используется, а там тоже можно сказать "запрос-обработка-ответ" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 14:12 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
ShSergeАгнец за бортомПарни, у меня вопрос по теме. А зачем всё это? Видишь ли, хелловордл теперь не по феншую. Что значит теперь? :) CQRS придумал Мейер ещё в 1988 году, если не ошибаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 14:15 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
skyANAВот например точка зрения Microsoft: Command and Query Responsibility Segregation (CQRS)Segregate operations that read data from operations that update data by using separate interfaces. This can maximize performance, scalability, and security. Supports the evolution of the system over time through higher flexibility, and prevent update commands from causing merge conflicts at the domain level. У тебя _своя_ точка зрения есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 14:54 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
skyANAАгнец за бортомпропущено... Зачем эти слои при пайплайне "запрос-обработка-ответ". В чем выгода? Будет выгода, и какая, или не будет - это надо смотреть на конкретном проекте. Какой должен быть проект, чтобы cqrs принес выгоду? И какая она - эта выгода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 14:55 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Агнец за бортомskyANAВот например точка зрения Microsoft: пропущено... У тебя _своя_ точка зрения есть? Мне очень удобно такое разделение в определённых случаях и действительно гибко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 18:37 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
Я, когда узнал о CQRS, тоже сперва воспринимал его поверхностно. Однако, нужно смотреть глубже! Например, цитата из статьи CQRS Фаулера: Martin FowlerBy separate models we most commonly mean different object models, probably running in different logical processes, perhaps on separate hardware. То есть, разделение на команды и запросы, это не просто выделение интерфейсов, но и возможное разделение моделей, используемых для чтения и обновлений, и разные базы данных, что потенциально даёт способ наращивать производительность. Конечно, это может повысить сложность проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 23:33 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
petalvikКонечно, это может повысить сложность проекта. А может и понизить :) Я у нас на проекте начал применять CQRS, когда в одной фиче, в отдельном модуле системы, отвечающем за биллинг, надо было реализовать выполнение определённых массовых действий по cron-у. Действий над различными срезами данных. И тут я обнаружил, что у нас есть некий центральный ScedulerRepository в котором понапихано запросов ко всем модулям системы, что используются в этих же модулях, в действиях, что выполняются в итоге Scheduler-ом по cron-у. И я подумал, что за фигня. В модуле есть действие (Action) над данными из области, за которую отвечает модуль, но запрос за ними лежит в каком-то год-репозитории. И стал применять CQRS. Таким образом и сложность понизилась, и инкапсуляция улучшилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2017, 10:28 |
|
||
|
cqrs в каком направление
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu поясните вот эт CommandDispatcher.CanDispatch(command) зачем эт проверка? Я должен убедиться, что входные данные валидны и я могу выполнить команду. Для данной команды в candispatch я проверяю тип файла и его размер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2017, 23:10 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=28&tid=1355514]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
20ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 368ms |

| 0 / 0 |
