|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
для регистрации в IoC - норм? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 20:42 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
Маркерный интерфейс - антипаттерн. Если хочешь как-то пометить особым образом класс, то используй кастомные аттрибуты - они, в т.ч. для этого и придуманы. Приведи пример - как ты собираешься его использовать для IoC, я как-то не очень могу понять. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 20:59 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
public interface ICommandHandler { } public interface ICommandHandler<TCommand, TResult> : ICommandHandler where TCommand : Command { } ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 21:11 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 21:11 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
love_bach, И как это с IoC связано? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 22:33 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5.
Вот такого интерфейса достаточно, не нужно городить TResult, команда не должна ничего возвращать. Если нужно получать данные (например, идентификатор созданной сущности), то это делается двумя путями: 1. хороший: через отдельное событие, на которое клиент подписывается, так как команда может выполнится асинхронно 2. средненькой паршивости: записывать данные прям в объект переданной команды. но что-то там возвращать -- совсем плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 12:49 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
fkthatlove_bach, И как это с IoC связано? Напрямую. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 12:49 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
love_bachдля регистрации в IoC - норм? здесь нет никакого маркерного интерфейса, не нужен он. рефлексия позволяет найти все реализации по дженерик-интерфейсу. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 12:50 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
hVosttНапрямую. hVosttрефлексия позволяет найти все реализации по дженерик-интерфейсу. Сам сказал, сам опроверг. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 13:11 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
hVosttкоманда не должна ничего возвращать. Что за горячечный бред? Метод тоже никогда не должен ничего возвращать? Откуда тут знать, что ТС подразумевает в данном случае под "командой". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 13:14 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
fkthathVosttНапрямую. hVosttрефлексия позволяет найти все реализации по дженерик-интерфейсу. Сам сказал, сам опроверг. тут нет маркерного интерфейса, который используется только для регистрации зависимостей. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 13:33 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
fkthathVosttкоманда не должна ничего возвращать. Что за горячечный бред? Метод тоже никогда не должен ничего возвращать? Откуда тут знать, что ТС подразумевает в данном случае под "командой". почитай про ДДД. возврат значения из команды -- антипаттерн. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 13:33 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
hVosttCQRS точнее В исходной теме где-то было про CQRS? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 14:00 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
fkthathVosttCQRS точнее В исходной теме где-то было про CQRS? я так понял, что речь идёт про реализацию команд хендлера из паттерна CQRS ничего другого не было сказано, так что я не понимаю с чем ты тогда споришь, да её со слюнями про "горячечный бред" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 14:09 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
hVostt Код: c# 1. 2. 3. 4. 5.
Вот такого интерфейса достаточно, не нужно городить TResult, команда не должна ничего возвращать. Если нужно получать данные (например, идентификатор созданной сущности), то это делается двумя путями: 1. хороший: через отдельное событие, на которое клиент подписывается, так как команда может выполнится асинхронно 2. средненькой паршивости: записывать данные прям в объект переданной команды. но что-то там возвращать -- совсем плохо. не по теме сабжа вопрос: 1. а почему плохо? можешь пример привести? 2. "так как команда может выполнится асинхронно" - await? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:12 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
love_bach2. "так как команда может выполнится асинхронно" - await? Нет, как раз тут имеется в виду вовсе не await, а вызов по принципу - "отправил и забыл". И тут даже уже не то, что плохо что-то возвращать, а возвращать что-то просто не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:17 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
love_bach"так как команда может выполнится асинхронно" - await?глобально асинхронно. То есть ты не ожидаешь ответа вообще, а просто периодически проверяешь статус выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:23 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
Shocker.ProТо есть ты не ожидаешь ответа вообще, а просто периодически проверяешь статус выполнения. Либо событие ловишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:25 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
fkthatlove_bach2. "так как команда может выполнится асинхронно" - await? Нет, как раз тут имеется в виду вовсе не await, а вызов по принципу - "отправил и забыл". И тут даже уже не то, что плохо что-то возвращать, а возвращать что-то просто не получится. если я правильно понял, тут про какой-то фоновый сервис хвост имел в виду. у меня такого нет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:32 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
love_bachесли я правильно понял, тут про какой-то фоновый сервис хвост имел в виду. у меня такого нетон имел ввиду CQRS ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:35 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
тоже читал про то, что хвост говорит про "возвращение из команды плохо". может плохо читал. если убрать требование "типа команда выполняется по принципу дернул и забыл", то чем плох реально возврат какого-то результата? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:37 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
Shocker.Prolove_bachесли я правильно понял, тут про какой-то фоновый сервис хвост имел в виду. у меня такого нетон имел ввиду CQRS да какая разница ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:37 |
|
Маркерный интерфейс
|
|||
---|---|---|---|
#18+
love_bachесли я правильно понял, тут про какой-то фоновый сервис хвост имел в виду. у меня такого нет Можно в пределах одного процесса - ничего не мешает. Отправитель - в одном потоке, обработчик - в другом. Делаешь абстракцию (интерфейс) типа ICommandBus, все команды пускаешь через неё. Если потом захочется переехать на микросервисы/распределенку, то проблем никаких - делаешь просто другую реализацию ICommandBus (через RabbitMQ, или Azure Queue Storage, например) и все - мягко, гладко и безболезненно переезжаешь. Можно при этом даже запросто распараллелить обработку команд сразу на несколько узлов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:40 |
|
|
start [/forum/topic.php?fid=20&fpage=15&tid=1398741]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 192ms |
0 / 0 |