先物/モナドvsイベント


10

アプリケーションフレームワークで、パフォーマンスへの影響を無視できる場合(最大で1秒あたり10〜20イベント)、
モジュール間の通信の優先媒体として使用するのに、より保守的で柔軟なものは何ですか?イベントまたは先物/プロミス/モナド

イベント(pub / sub、メディエーター)は疎結合を許可するため、より保守しやすいアプリであるとよく言われます...私の経験ではこれが否定されます。20以上のイベントがあると、デバッグが困難になり、リファクタリングも行われます-誰が、いつ、なぜ使用するのかを確認するのは非常に難しいためです。

約束(私はJavascriptでコーディングしています)は、イベントよりも醜くて気難しいものです。ただし、関数呼び出し間の接続を明確に確認できるため、アプリケーションロジックがより簡単になります。私が恐れていること。ただし、Promiseはそれらとのより強い結合をもたらすでしょう...

PS:答えはJSに基づく必要はありません。他の関数型言語の経験は大歓迎です。


2
よく言われていることですが、イベント(pub / sub、メディエーター)は疎結合を許可します。それらを聞くのをやめてください!親を知らずにイベントをサブスクライブすることはできません->密結合。弱いイベント(= Mediator?)を調べます。
Louis Kottmann 2012

@ヒヒイベントは自動的に疎結合を生成しないことに一般的に同意しますが、イベントバスを導入すると、「親」を知らなくてもイベントをサブスクライブできます。誰が言ったの?Google IO 2009のレイライアン、13:50にgoogle.com/events/io/2009/sessions/…をご覧ください。
スカーフリッジ

@scarfridgeはい、ある種のイベントアグリゲーターを実装すると、コメントで述べたように、結合が失われます。
Louis Kottmann 2012

.net rxはイベントアグリゲーターであり、私はモバイルです。詳細は後日投稿します
AndreasScheinert

回答:


1

モナドとイベントは非常にうまく連動します。たとえば、.NET Rxを見てください。JavaScriptの実装さえあるべきだと思います。 http://msdn.microsoft.com/en-us/data/gg577609.aspx


遅れて申し訳ありません。「マイクロソフトの馬鹿げたもの」は本当に素晴らしい。そして今、Reactive Extensionsがオープンソース化された後、それらはさらに実行可能になります。答えてくれてありがとう(少し拡大したいかもしれませんが;))。
C69

それはあなたが探しているものに依存します:いくつかの紹介または特定の例。いずれにせよ、このトピックに関するErik MeijerとBrian Beckmannによるchannel9ビデオとトークを探索することをお勧めします。
AndreasScheinert、2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.