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

joe*_*dle 6 meteor

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

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

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

您能否提供一些在Meteor中无法轻易编写的应用程序示例,并且可以使用不同的,更可自定义的框架更好地编写?

Dav*_*don 8

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

限制

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

摘要

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