Ф'ючерси / монади проти подій


10

У рамках програми, коли вплив продуктивності можна ігнорувати (10-20 подій в секунду на максимум),
що можна отримати більш гнучко та гнучко використовувати як бажаний засіб для спілкування між модулями - події чи майбутнє / обіцянки / монади ?

Часто говорять про те, що події (pub / sub, посередник) дозволяють зв'язати зв'язок і, таким чином, - більш рентабельний додаток ... Мій досвід заперечує це: як тільки у вас буде більше 20 подій - налагодження стає важким, і так це рефакторинг - тому що дуже важко помітити: хто, коли і навіщо використовує, що.

Обіцяння (я кодую в Javascript) набагато гірше і тупіше, ніж події. Але: ви чітко бачите зв’язки між викликами функцій, тому логіка програми стає більш прямою. Чого я боюся. однак, чи це те, що Обіцянки принесуть з ними ще більш жорсткі зв'язки ...

ps: відповідь не повинна базуватися на JS, досвід інших функціональних мов дуже вітається.


2
Часто говорять, що події (паб / суб, медіатор) дозволяють вільно зв'язати, хто, до чорта, це говорить? перестань їх слухати! Ви не можете підписатись на подію, не знаючи про зв'язок батьків ->. Погляньте на слабкі події (= Посередник?).
Луї Котманн

@Baboon Я, як правило, погоджуюся, що події не призводять до автоматичного з'єднання, але якщо ви введете шину подій, ви можете підписатися на події, не знаючи "батьків". Хто це каже? Рей Райан у Google IO 2009, дивіться google.com/events/io/2009/sesions/… о 13:50.
scfridge

@scarfridge так, якщо ви реалізуєте якусь функцію eventaggregator, це втрачає зв'язок, як я вже сказав у своєму коментарі.
Луї Котманн

.net rx - агрегатор подій, я перебуваю на мобільному телефоні, більше деталей
публікую

Відповіді:


1

Монади та події грають досить добре разом, наприклад, придивіться до .NET Rx. Я думаю, має бути навіть реалізація JavaScript. http://msdn.microsoft.com/en-us/data/gg577609.aspx


вибачте за затримку прийняти. "якась німа штука від Microsoft" справді приголомшлива. А тепер, після того, як Реактивне розширення було відкрито, вони стають ще більш життєздатними. Дякую за відповідь (хоча ви, можливо, захочете її трохи розширити;)).
c69

Це залежить від того, що ви шукаєте: якийсь вступ або конкретні приклади. У будь-якому випадку я можу порекомендувати вам переглянути відео9 та бесіди Еріка Мейєра та Брайана Бекмана на цю тему.
AndreasScheinert
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.