Re[16]: Образцово-показательный интерфейс для EventBus
От: Shmj Ниоткуда  
Дата: 24.11.21 18:38
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Дело именно в причине, так как именно причина отмены ответит на вопрос как это все инициировать и откуда всять токен.


Вот вы сделали Dispose для подписки — а отменится ли автоматом исполнение уже запущенного eventHandler?

S>>- а в том, как вы его будете отменять, если CancellationToken находится во владении nativeClient, а не передается вами?


НС>Например так.


И к чему линковать будем?

S>>И как это реализовано в интерфейсах?

НС>Зачем это реализовывать в интерфейсах? Это особенность реализации. А в интерфейсах есть универсальный CancellationToken.

Почему вы называете его универсальным, если он он не отменяет eventHandler?
Re[17]: Образцово-показательный интерфейс для EventBus
От: Ночной Смотрящий Россия  
Дата: 25.11.21 07:47
Оценка:
Здравствуйте, Shmj, Вы писали:

НС>>Дело именно в причине, так как именно причина отмены ответит на вопрос как это все инициировать и откуда всять токен.

S>Вот вы сделали Dispose для подписки — а отменится ли автоматом исполнение уже запущенного eventHandler?

Непонятен вопрос. Как тебе надо, так и сделай.

S>>>- а в том, как вы его будете отменять, если CancellationToken находится во владении nativeClient, а не передается вами?

НС>>Например так.
S>И к чему линковать будем?

К оригинальному токену.

S>>>И как это реализовано в интерфейсах?

НС>>Зачем это реализовывать в интерфейсах? Это особенность реализации. А в интерфейсах есть универсальный CancellationToken.
S>Почему вы называете его универсальным, если он он не отменяет eventHandler?

Потому что он универсальный. А почему он должен отменять eventHandler?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Образцово-показательный интерфейс для EventBus
От: Sharov Россия  
Дата: 25.11.21 09:58
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:


S>> Task SubscribeAsync<TEvent>()

S>> where TEvent : IntegrationEvent;
НС>Стейтфул? Фу, бяка.

А почему стейтфул?
Кодом людям нужно помогать!
Re[3]: Образцово-показательный интерфейс для EventBus
От: Ночной Смотрящий Россия  
Дата: 25.11.21 10:42
Оценка:
Здравствуйте, Sharov, Вы писали:

S>>> Task SubscribeAsync<TEvent>()

S>>> where TEvent : IntegrationEvent;
НС>>Стейтфул? Фу, бяка.
S>А почему стейтфул?

Потому что нет параметра кого подписываем.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Образцово-показательный интерфейс для EventBus
От: Sharov Россия  
Дата: 25.11.21 22:53
Оценка:
Здравствуйте, Shmj, Вы писали:

S>И еще вопрос. Вы внутри метода SubscribeAsync, очевидно, вызываете подтверждение обработки события. Так? У меня это отдельный метод.


По идее за это брокер должен отвечать -- если сообщение принято подписчиком и нет исключения, то считаем что оно вообще
успешно принято. Как минимум с тз брокера.
Кодом людям нужно помогать!
Re[4]: Образцово-показательный интерфейс для EventBus
От: Sharov Россия  
Дата: 25.11.21 23:20
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>А почему стейтфул?

НС>Потому что нет параметра кого подписываем.

Т.е. реализация обработки будет в самом подписчике?
Кодом людям нужно помогать!
Re[3]: Образцово-показательный интерфейс для EventBus
От: Vladek Россия Github
Дата: 26.11.21 03:19
Оценка: :)
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, Vladek, Вы писали:


V>>Для меня эти проекты от dotnet-architecture — хороший пример того, как делать не надо. Там нет ничего, кроме говнокода.


S>Давайте свой IEventBus — обкашляем.


Раньше были какие-то зачатки, я вроде бы использовал это с MVVM: https://github.com/vborovikov/vividkit/blob/master/src/Core/VividKit/RequestModel/Infrastructure/DefaultEventDispatcher.cs — идея была в том, что один компонент использовал диспетчер для публикации событий, а любой другой компонент, заинтересованный в этом событии, должен был реализовать обработчик события. И диспетчер автомагически выполнял функции медиатора между компонентами. Один диспетчер можно вкладывать в другой, и строить на этом дополнительную логику — но я оставил это пока на будущее, когда реально понадобится.

На данный момент я использую только CQRS: https://github.com/vborovikov/relay/blob/master/src/Relay/RequestModel/IRequestDispatcher.cs — в основном в UI — этот интерфейс удачно встраивается в контроллеры ASP.NET MVC, модели вида MVVM (класс Presenter в том же проекте), консольные приложения, использующие System.CommandLine, и даже недавно использовал его для отправки и получения команд и запросов через MSMQ. Это интерфейс позволяет мне ядро приложения надёжно изолировать от UI каким бы он не был. Именно такой API меня устраивает — минимум методов и всяких ритуалов вокруг них.
Re[5]: Образцово-показательный интерфейс для EventBus
От: Ночной Смотрящий Россия  
Дата: 26.11.21 07:36
Оценка:
Здравствуйте, Sharov, Вы писали:

S>>>А почему стейтфул?

НС>>Потому что нет параметра кого подписываем.
S>Т.е. реализация обработки будет в самом подписчике?

Это вопрос к ТС.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Образцово-показательный интерфейс для EventBus
От: Sharov Россия  
Дата: 26.11.21 10:36
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Т.е. реализация обработки будет в самом подписчике?

НС>Это вопрос к ТС.

Не совсем, я не про детали, а про идею. Stateful потому что обработчик будет назначен через конструктор или
setter? Т.е. это ненужная связанность для подписчика (реализация IEventBus), так?
Кодом людям нужно помогать!
Re[7]: Образцово-показательный интерфейс для EventBus
От: Ночной Смотрящий Россия  
Дата: 26.11.21 12:36
Оценка:
Здравствуйте, Sharov, Вы писали:

S>>>Т.е. реализация обработки будет в самом подписчике?

НС>>Это вопрос к ТС.
S>Не совсем, я не про детали, а про идею.

Все равно не ко мне — не я этот интерфейс выдумал.

S> Stateful потому что обработчик будет назначен через конструктор или

S>setter?

Стейтфул потому что если у метода нет параметров и возвращаемого значения, то единственный способ сделать с его помощью что то полезное — поменять стейт.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[8]: Образцово-показательный интерфейс для EventBus
От: Sharov Россия  
Дата: 27.11.21 15:56
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>> Stateful потому что обработчик будет назначен через конструктор или

S>>setter?
НС>Стейтфул потому что если у метода нет параметров и возвращаемого значения, то единственный способ сделать с его помощью что то полезное — поменять стейт.

Там отличие только в параметре типа обработчика, и сразу stateful?

ТС
        Task SubscribeAsync<TEvent>()
            where TEvent : IntegrationEvent;


исходный
void Subscribe<T, TH>()
        where T : IntegrationEvent
        where TH : IIntegrationEventHandler<T>;


Или критиковались сразу оба варианта? Просто я не понял как наличие или отсутствие параметра типа
влияет на состояние?
Кодом людям нужно помогать!
Re[8]: Образцово-показательный интерфейс для EventBus
От: Shmj Ниоткуда  
Дата: 27.11.21 17:59
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Стейтфул потому что если у метода нет параметров и возвращаемого значения, то единственный способ сделать с его помощью что то полезное — поменять стейт.


Можно полюбопытствовать — занимаетесь ли разработкой архитектуры? Просто не каждый же сразу обратит внимание.
Re[9]: Образцово-показательный интерфейс для EventBus
От: Ночной Смотрящий Россия  
Дата: 27.11.21 19:43
Оценка: 8 (1)
Здравствуйте, Sharov, Вы писали:

S>Или критиковались сразу оба варианта?


Сразу оба.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[9]: Образцово-показательный интерфейс для EventBus
От: Ночной Смотрящий Россия  
Дата: 27.11.21 22:19
Оценка: 1 (1)
Здравствуйте, Shmj, Вы писали:

S>Можно полюбопытствовать — занимаетесь ли разработкой архитектуры?


Почти каждый рабочий день. У меня, собственно, две основные обязанности — архитектура и качество кода.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[10]: Образцово-показательный интерфейс для EventBus
От: Shmj Ниоткуда  
Дата: 28.11.21 16:46
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Можно полюбопытствовать — занимаетесь ли разработкой архитектуры?

НС>Почти каждый рабочий день. У меня, собственно, две основные обязанности — архитектура и качество кода.

Могли бы порекомендовать какую-нибудь литературу, которая вам помогла?
Re[11]: Образцово-показательный интерфейс для EventBus
От: Ночной Смотрящий Россия  
Дата: 28.11.21 18:15
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Могли бы порекомендовать какую-нибудь литературу, которая вам помогла?


Не могу посоветовать чего то конкретного.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.