我已经完成了Discover Meteor应用程序,我有一个与加载程序包的幕后性能相关的问题。更准确地说,本教程使用户首先在主要meteor项目中创建错误处理功能,然后使代码模块化创建错误包。
除了拥有一个软件包的明显优势之外,还有一个特定的原因,就是为什么要创建一个软件包而不是简单地在项目中使用它?任何性能差异,包装方式的任何优势?我应该注意哪些缺点?
我可以归结一下这个问题,与主项目文件夹中的相同代码相比,包有更好的性能吗?
答案 0 :(得分:2)
创建包本身并不会带来性能优势 - 代码被缩小并与应用程序的其余部分一起插入到同一个包中。主要优点是:
正如您所指出的,它使代码可重用。即使它只是local package,您仍然可以在自己的项目之间使用它。或者,如果您可以与他人分享,您可以在atmosphere上发布,让社区其他人受益。
您可以更好地控制应用程序中依赖项和文件的加载顺序。一些社区成员通过使用包here和here构建整个应用程序,将这一想法变为极端。
您可以使用tinytest。
除了编写和维护package.js
文件的认知开销(它列出了依赖项,文件加载顺序等)之外,我无法想到任何明显的缺点。另请注意,对于1.0的包{{}}上的工作是the roadmap,所以请注意,在接下来的几个月中某些方面会发生变化。
在工作中,我们喜欢将独立工具(如文本生成器和与我们的邮件提供者交互的库)分解为包,即使它们不能跨应用程序重用,因为:
它使我们的应用代码库更小。
它将git历史分开。
它有助于明确区分问题。
这可能不是一个详尽的列表,但它应该给你一些关于包创建和使用背后的动机的想法。