流星的局限 - 它不能做什么?

时间:2014-02-06 19:57:48

标签: meteor

Meteor似乎是快速编写动态应用程序的一个很好的框架,但必须有一个问题。

据推测,使用Meteor构建应用程序时会遇到一些限制。

我正在寻找一种方法来评估Meteor是否是特定项目的不错选择。

你能否提供一些可以轻松编写在Meteor中的应用程序的例子,并且可以使用不同的,更可定制的框架更好地编写?

1 个答案:

答案 0 :(得分:8)

我会试图给你一个无可挑剔的真相,因为自2013年以来一直在为生产业务生产流星的人。注意这个答案正在为流星版本1.1编写。这里给出的任何限制无疑都会随着时间的推移而得到修复。

限制

  • 流星只正式支持mongodb。
    1. 如果您的现有数据库无法轻松移植,则可能会运气不佳。
    2. Mongo没有触发器。正因为如此,流星跳过荒谬的箍,以观察数据库的变化,以保持反应。如果您手动拨打observeobserveChanges,或者需要reactive join,这最终会成为一件大事。为了在中等负载下保持合理的CPU级别,您需要使用oplog tailing,这将要求您托管自己的数据库,或使用您喜欢的提供商提供的专用实例(推荐)。但是,一旦你这样做,流星确实可以扩展。
    3. 从(2)开始,oplog拖尾在大量写入负载下表现不佳。虽然这对大多数Web应用程序来说并不常见,但如果您的应用程序会表现出这种行为,您可以通过将应用程序的该部分分成微服务来解决此问题。
  • Meteor不是静态网站的好选择,因为它是通过javascript动态呈现的 - 即SEO支持有限。像ssr这样的一些软件包旨在帮助解决这个问题。我的理解是,Google抓取工具在运行SPA方面变得更加复杂,但我不打赌我的业务。通常,一种简单的解决方法是将静态站点与应用程序分开。
  • 没有内置组件库。如果你知道自己在做什么,就可以编写可重复使用的模板,但这并不是一回事。一些着名的陨石已经能够使用反应和polimer来构建他们的应用程序,但是需要非常少量的hackery。
  • 网站的所有js和CSS资产都是预先加载的。即没有增量加载或功能修剪的概念。好消息是您的内容可以轻松缓存。坏消息是初始页面加载速度非常慢。

摘要

总的来说,流星一直是一个很棒的框架。尽管有上述限制,但我们的工作效率令人难以置信。像任何框架一样,您可能只需要做一个评估项目,看看它是否合适。