Was ist in einem Anwendungsframework, in dem die Auswirkungen auf die Leistung ignoriert werden können (maximal 10 bis 20 Ereignisse pro Sekunde), wartbarer und flexibler als bevorzugtes Medium für die Kommunikation zwischen Modulen zu verwenden - Ereignisse oder Futures / Versprechen / Monaden ?
Es wird oft gesagt, dass Ereignisse (Pub / Sub, Mediator) eine lose Kopplung ermöglichen und somit - eine wartbarere App ... Meine Erfahrung bestreitet dies: Sobald Sie mehr als 20 Ereignisse haben, wird das Debuggen schwierig, ebenso wie das Refactoring. weil es sehr schwer zu sehen ist: wer, wann und warum benutzt was.
Versprechen (ich codiere in Javascript) sind viel hässlicher und dümmer als Ereignisse. Aber: Sie können die Zusammenhänge zwischen Funktionsaufrufen klar erkennen, sodass die Anwendungslogik einfacher wird. Was ich fürchte. ist jedoch, dass Versprechen mehr harte Kopplung mit sich bringen werden ...
ps: Die Antwort muss nicht auf JS basieren, Erfahrungen aus anderen funktionalen Sprachen sind sehr willkommen.
Antworten:
Monaden und Events passen sehr gut zusammen, schauen Sie sich zum Beispiel .NET Rx an. Ich denke, es sollte sogar eine JavaScript-Implementierung geben. http://msdn.microsoft.com/en-us/data/gg577609.aspx
quelle