Meteor 流星的局限性——什么可以';不是吗?

Meteor 流星的局限性——什么可以';不是吗?,meteor,Meteor,Meteor似乎是一个快速编写动态应用程序的伟大框架,但必须有一个陷阱 在使用Meteor构建应用程序时,我可能会遇到一些限制 我正在寻找一种方法来评估流星是否是一个给定项目的好选择 你能举一些例子说明这种应用程序不容易用Meteor编写,而且最好用一个不同的、更可定制的框架编写吗?我将尝试告诉你一个不加修饰的事实,作为一个自2013年以来一直在为创收业务运营Meteor的人。注意:这个答案是为meteor版本1.1编写的。毫无疑问,此处给出的任何限制都将随着时间的推移而固定 局限性 Mete

Meteor似乎是一个快速编写动态应用程序的伟大框架,但必须有一个陷阱

在使用Meteor构建应用程序时,我可能会遇到一些限制

我正在寻找一种方法来评估流星是否是一个给定项目的好选择


你能举一些例子说明这种应用程序不容易用Meteor编写,而且最好用一个不同的、更可定制的框架编写吗?

我将尝试告诉你一个不加修饰的事实,作为一个自2013年以来一直在为创收业务运营Meteor的人。注意:这个答案是为meteor版本1.1编写的。毫无疑问,此处给出的任何限制都将随着时间的推移而固定

局限性
  • Meteor只正式支持mongodb。
  • 如果您现有的数据库无法轻松移植,那么您可能会运气不佳
  • Mongo没有触发器。正因为如此,meteor通过荒谬的环跳来观察数据库的变化以保持反应性。如果您手动调用
    observeChanges
    observeChanges
    ,或者您需要一个。为了在中等负载下保持合理的CPU级别,您需要使用,这将要求您要么托管自己的DB,要么使用来自您喜爱的提供商(推荐)的专用实例。然而,一旦你这样做,流星确实可以缩放
  • 从(2)中可以看出,oplog拖尾在重载写负载下性能很差。虽然这在大多数web应用程序中并不常见,但如果您的应用程序将表现出这种行为,您可以通过将应用程序的该部分分离为一个微服务来解决这一问题
  • Meteor不是静态站点的好选择,因为它是通过javascript动态呈现的,也就是说,SEO支持是有限的。一些软件包(如)旨在帮助实现这一点。我的理解是,Google crawler在运行SPA方面已经变得非常成熟,但我不会把我的生意押在它身上。通常一个简单的解决方法是维护一个与应用程序分离的静态站点
  • 没有内置的组件库。如果您知道自己在做什么,您可以编写可重用的模板,但这其实不是一回事。一些著名的陨石已经能够使用react和polimer构建他们的应用程序,但需要大量的黑客操作
  • 站点的所有js和CSS资产都是预先加载的。也就是说,没有增量加载或特征修剪的概念。好消息是,您的内容可以轻松缓存。坏消息是,初始页面加载速度可能非常慢
总结
总的来说,meteor是一个非常好的框架。尽管有上述限制,我们在这方面还是取得了令人难以置信的成效。像任何框架一样,您可能只需要做一个评估项目,看看它是否适合。

非常感谢,答案和链接都非常有用。Hoodie()正在发展成为一个可行的替代方案,而我对socketstream()有很好的过期性,您也应该看看derby()。jQuery插件问题已经解决,而Famo.us则使花式动画成为可能。是时候更新了?不是说流星是无限的;我也编译了我自己的。我更新了1.1的答案。