更多的讨论而不是问题:
我一直在阅读一篇名为“大规模JavaScript应用程序架构的模式”的文章,到目前为止它已经让人大开眼界。
本文作者提倡使用发布者/控制器来使用pub / sub体系结构。没有给出任何真实世界的例子,但在他提倡使用'Amplify.js'的实际幻灯片(http://addyosmani.com/blog/jqcon-largescalejs-2012/)中。
与许多其他pub / sub实现一样,Amplify支持消息优先级。我的理解是,在调解员到位的情况下,对消息进行优先排序的需求会减少,因为调解员会控制在何时何地发生的事情。这是一个有效的观点吗?
消息优先级让我感到害怕,因为当应用程序增长(并且变化)时,您最终会得到一堆模块,这些模块的订阅设置了不同的优先级,并且无法真正控制正在发生的事情。这是一个有效的问题,还是仅仅误解了它们应该如何使用?
答案 0 :(得分:1)
我会警告不要使用任何复杂版本的pub / sub。不考虑优先级,而是考虑渠道,并假设所有渠道彼此独立处理,并且没有一个具有“优先权”。
另一个警告:不要将模块名称用作通道名称或名称空间。如果这样做,您也可以直接向其他模块提供模块和调用方法。重点是你的模块彼此不了解,不直接沟通。
另一个提示:不要告诉其他模块该做什么。而是报告发送消息的模块内发生的事件。思维的微妙转变是保持模块分离的关键。
答案 1 :(得分:1)
我发现这个用于pub / sub优先级的用法很有帮助,基于这个问题所建议的将它们用作“频道”的好主意。
订阅的优先级,其中1最高,5最低:
这应该尽可能地阻止layout thrashing。
很抱歉回复旧帖子,但这是google中“pub sub priority”的第一页,并且没有太多内容。