В рамках приложения, когда влияние производительности может быть проигнорировано (максимум 10-20 событий в секунду),
что является более обслуживаемым и гибким для использования в качестве предпочтительного средства связи между модулями - события или фьючерсы / обещания / монады ?
Часто говорят, что события (pub / sub, mediator) допускают слабую связь и, следовательно, - более удобное в обслуживании приложение ... Мой опыт отрицает это: если у вас есть более 20 событий - отладка становится сложной, и рефакторинг - потому что очень трудно понять: кто, когда и почему что использует.
Обещания (я кодирую в Javascript) намного уродливее и тупее, чем События. Но: вы можете четко видеть связи между вызовами функций, поэтому логика приложения становится более понятной. Чего я боюсь тем не менее, это обещания принесут больше жесткой связи с ними ...
PS: ответ не должен быть основан на JS, опыт других функциональных языков приветствуется.
Ответы:
Монады и события прекрасно играют вместе, например, взгляните на .NET Rx. Я думаю, что должна быть даже реализация JavaScript. http://msdn.microsoft.com/en-us/data/gg577609.aspx
источник