为什么Meteor使用光纤而不是承诺或异步或其他东西?

时间:2013-12-01 14:11:18

标签: meteor

为什么Meteor使用光纤而不是promises或async,或者可能是异步调用? 什么是纤维的好处?有人可以解释这个架构决定吗?

1 个答案:

答案 0 :(得分:22)

Straight from the horse's mouth,领导Meteor开发人员Geoff Schmidt:

  

Meteor致力于为游戏提供最佳体验   应用程序开发人员。我们不得不做出一些看似不受欢迎或冒险的决定,但这导致了一套工具   更简单,更强大,更有趣。 。 。 。事实证明   这些决定几乎没有风险或不受欢迎   有些人可能会察觉到。最好说他们走了   反对node.js社区的传统智慧。采取正义   例如,每个请求的线程或每个请求的进程模型   在较大的软件工程社区中很常见,而   有时会使用节点的连续传递(“异步”)样式   对于聊天服务器和消息总线,但几乎从未使用过   商业逻辑。我认为服务器端的JavaScript使用将会发生   在接下来的几年里,我们会增长多个数量级,我们就是这样   将有大量新开发人员涌入。大多数新代码   这些开发人员编写的将是业务逻辑,他们会想要   使用他们使用的直线控制流程来编写它   几乎所有其他框架。

引用a great article about Fibers in Meteor

  

Meteor使用API​​提取Fibers,允许您编写应用程序   没有回调。最好的部分是你可以编写你的代码   方式,完全忘记纤维。 只是有效。

     

纤维是Meteor如此受欢迎的最佳原因之一。既然如此   允许我们编写没有回调的Node.js应用程序,它吸引了   许多开发人员出于这个原因讨厌Node.js。

换句话说,开发人员可以在不输入单词“Fiber”的情况下创建Meteor应用程序。这一切都发生在后台。因此大多数应用程序的大多数开发人员都没有理由关心“为什么是Fibers”而不是Promise或其他东西,因为开发人员并没有直接“使用”任何这些技术。 Meteor团队可以在引擎盖下重写Meteor核心,使用Promise而不是Fibers,大多数应用程序应该像以前一样继续运行,不知道变化。

至于为什么在Meteor核心本身,核心团队更喜欢Fibers over Promises等,从我所读到的(并在上面的Geoff Schmidt引用中暗示),这主要是他们的个人偏好 - 即。他们厌恶回调和代码,这些代码过于清楚其异步性质。他们希望为Meteor应用程序开发人员创建相同的回调 - 不经意的体验。