JavaScript Pub/Sub - 消息优先级

bac*_*esk 7 javascript

更多的讨论而不是问题:

我一直在阅读一篇名为"大规模JavaScript应用程序架构的模式"的文章,到目前为止它已经让人大开眼界了.

本文作者提倡使用pub/sub体系结构,使用中介/控制器.没有给出任何真实的例子,但在实际的幻灯片放映(http://addyosmani.com/blog/jqcon-largescalejs-2012/)中,他主张使用'Amplify.js'.

与许多其他发布/子实现一样,Amplify支持消息优先级.我的理解是,在调解员到位的情况下,消除优先级消息的需求会减少,因为调解员可以控制在何时何地发生的事情.这是一个有效的观点吗?

消息优先级让我感到害怕,因为当应用程序增长(并且变化)时,您最终可能会得到一堆模块,这些模块都在其订阅上设置了不同的优先级,并且无法真正控制正在发生的事情.这是一个有效的问题,还是仅仅误解了它们应该如何使用?

Eri*_*ott 1

我会警告不要使用任何复杂版本的 pub/sub。不要从优先级的角度思考,而是从渠道的角度思考,并假设所有渠道都是相互独立处理的,并且没有一个渠道有“优先级”。

另一个警告:不要使用模块名称作为通道名称或命名空间。如果这样做,您还可以为其他模块提供对您的模块的直接引用并直接调用方法。重点是您的模块彼此不了解,并且不直接通信。

另一项提示:不要告诉其他模块要做什么。相反,报告发送消息的模块内部发生的事件。这种思维上的微妙转变是保持模块解耦的关键。