
Bohdan
15.03.2018
14:51:52
кстати, по доменным ивентам
делать release на сущностях вручную - это нормальная практика?

Sergey
15.03.2018
14:57:45

andretshurotshka?❄️кде
15.03.2018
14:58:07

Mykola
15.03.2018
15:10:31

Google

Sergey
15.03.2018
15:11:35
с чего бы?
давай от обратного - почему ты считаешь что команда и операция это разные вещи? и в каком контексте ты так считаешь?

Bohdan
15.03.2018
15:12:01
команда - запрос/требование выполнения операции

Maksim
15.03.2018
15:12:04
команда - триггер операции) ну как-то по логике вещей)
чорд)

Bohdan
15.03.2018
15:12:13
императивненько
но!
вызов любого метода в коде - это тоже команда
значит... что наш код - это большой командный автобус :D

Sergey
15.03.2018
15:13:42
в этом вся разница

Bohdan
15.03.2018
15:14:04

Sergey
15.03.2018
15:14:19
между "шиной команд", подразумевающую асинхронную природу операции.
bus.handle(command)
// а вот тут еще не известно
// выполнилась ли команда на самом деле

Bohdan
15.03.2018
15:14:36
и это тоже не отрицаю)

Mykola
15.03.2018
15:14:45
команда имеет 1. того, кто ее дает 2. опционально исполнителя 3. не подразумевет никакой процесс сама по себе
операция 1. это процесс 2. подразумевает детерминированность

Google

Sergey
15.03.2018
15:14:52
по сравнению с
handler.handle(command)
// тут известно что операция завершена

Aleh
15.03.2018
15:14:54

Bohdan
15.03.2018
15:15:10

Sergey
15.03.2018
15:15:17
даже в случае с cqrs

Bohdan
15.03.2018
15:15:36
тут вообще cqrs не при чем

Sergey
15.03.2018
15:15:47
потому что повторюсь - шины и cqrs про разные аспекты

Aleh
15.03.2018
15:16:10

Sergey
15.03.2018
15:16:22
ну то есть блин
command bus -> (cqrs app) -> result event
понимаешь?
или даже так

Aleh
15.03.2018
15:17:29
https://groups.google.com/d/msg/dddcqrs/xhJHVxDx2pM/WP9qP8ifYCwJ

Sergey
15.03.2018
15:17:31
command bus -> (магия) -> handler -> database -> done

Aleh
15.03.2018
15:17:50
после запуска команды ты синхронно можешь получить результат
если нет, то это не команда и не cqrs

Maksim
15.03.2018
15:18:20
накладывать на себя ограничение потому, что так сказал кто-то - сомнительная идея.

Aleh
15.03.2018
15:18:31
просто не называй это командой
никто ж не запрещает так делать

Google

Maksim
15.03.2018
15:18:47
да это команда) в том-то и дело

Aleh
15.03.2018
15:19:00
нет, если ты не можешь получить результат ее работы

Sergey
15.03.2018
15:19:01

Aleh
15.03.2018
15:19:14
это терминология

Sergey
15.03.2018
15:19:17
ну то есть command bus оно как раз таки про те мифические "асинхронные команды" которые на самом деле ивенты
и я не вижу из этого следствия что cqrs это всегда "синхронные команды"

Maksim
15.03.2018
15:19:46

Mykola
15.03.2018
15:20:03
блин, вы щас мешаете семантику понятий в непонятную кучу

Sergey
15.03.2018
15:20:09

Mykola
15.03.2018
15:20:19
зачем вы это делаете?
есть ивент, есть команда, иногда это разные лица одного и того же обьекта, но это совсем разные понятия
так же как и команда/операция

Артур Евгеньевич
15.03.2018
15:21:14
ивент это следствие команды
вот!
одно из следствий

Aleh
15.03.2018
15:21:27

Mykola
15.03.2018
15:21:27
это с чего?

Bohdan
15.03.2018
15:21:29
почему асинхронная команда - это ивент?)

Aleh
15.03.2018
15:21:30
нет проблем)

Maksim
15.03.2018
15:21:38

Google

Bohdan
15.03.2018
15:21:41
ухххх, давно тут такого активного не было

Aleh
15.03.2018
15:21:55

Sergey
15.03.2018
15:22:10

Maksim
15.03.2018
15:22:46
все плохо?(
ну это логика людей, котоые заявляют, что земля плоская, а ты соглашаешься с этим только потому, что они так сказали.

Aleh
15.03.2018
15:23:32

Артур Евгеньевич
15.03.2018
15:23:33

Sergey
15.03.2018
15:23:41

Aleh
15.03.2018
15:24:04

Sergey
15.03.2018
15:24:12
и у тебя "выполнением задачи" занимаются отдельные процессы?

Aleh
15.03.2018
15:24:13

Sergey
15.03.2018
15:24:16
и взаомодействие асинхронно?

Aleh
15.03.2018
15:24:19
это ж неважно совсем

Sergey
15.03.2018
15:24:30

Maksim
15.03.2018
15:24:31

Артур Евгеньевич
15.03.2018
15:24:32
я для себя понял так - команда, это некое событие(заключающиеся в номерении что то совершить) инициированное извне

Aleh
15.03.2018
15:24:39
важно знаю ли я окончание, могу ли сказать “вот здесь опреация кончилась и вот результат” или не могу

Sergey
15.03.2018
15:24:50

Bohdan
15.03.2018
15:25:15

Sergey
15.03.2018
15:25:16
как и кто реагирует на события не важно ровно так же как и им не важно откуда прилетело событие

Google

Bohdan
15.03.2018
15:25:23
событие - результат действия, которое есть результат намерения

Aleh
15.03.2018
15:25:28

Артур Евгеньевич
15.03.2018
15:25:32

andretshurotshka?❄️кде
15.03.2018
15:25:53
Хахахаххахаа CQRS

Артур Евгеньевич
15.03.2018
15:25:56
ResetUserPasswordCommand == TryToResetUserPasswordEvent

Sergey
15.03.2018
15:25:59
ну да =это ж неважно совсем
но это и не означает что если у меня модель экторов является write model то я не могу мутить CQRS используя "асинхронные команды"

andretshurotshka?❄️кде
15.03.2018
15:26:08
Юзали бы редакс и не мучались

Aleh
15.03.2018
15:26:16

Sergey
15.03.2018
15:26:31

Aleh
15.03.2018
15:26:39
ну вот я и спрашиваю
почему ты называешь их асинхронными

Bohdan
15.03.2018
15:26:45

Sergey
15.03.2018
15:26:59
на этом месте я согласен с @Lividgreen что "операция" это больше про процесс а команда про намеренье запустить процесс

Aleh
15.03.2018
15:27:19
мы вроде про команды говорили, но можем про что угодно)

Maksim
15.03.2018
15:27:52

Sergey
15.03.2018
15:28:00
foo.a();
bar.b();
// a еще могло даже не начаться
// что делает операцию асинхронной
foo.a();
bar.b();
// тут синхронно потому что b начнется строго по окончанию a

Артур Евгеньевич
15.03.2018
15:29:12

Mykola
15.03.2018
15:30:43
ребят, ну просто попробуйте на вкус:
результат комманды - режет ухо
результат операции - норм
какие еще нужны аргументы? :)

Артур Евгеньевич
15.03.2018
15:31:11

Sergey
15.03.2018
15:31:28