本文总结了JavaScript库开发的十一条核心规则,强调保持无侵入性、严禁修改Object.prototype以及避免过度扩展原生对象。内容涵盖遵循标准、保持灵活性、内存管理、摒弃浏览器嗅探及控制库体积等关键实践,旨在帮助开发者构建稳定、高效且兼容性强的JavaScript库。
JavaScript库开发的核心规范与最佳实践
1. 保持无侵入性:HTML标记不应感知JavaScript代码的存在。 2. 严禁修改和扩展Object.prototype!这是一条至关重要的独立规则。对象是JavaScript功能的基本构建模块,切勿破坏其完整性。 3. 避免过度扩展:对JavaScript内建对象的扩展应越少越好。虽然原生对象中有时确实需要添加少量方法,但富有创造力的库开发者不应随意添加“一两个”以上的方法。请克制添加需求,对原生对象的扩展越少,代码与其他框架发生冲突的概率就越低。 4. 遵循标准:作为库的开发者,你定义了JavaScript代码的模式。设计模式往往是编程语言能力不足的体现。请记住,JavaScript和DOM仍在不断标准化。如果你想“修正”某些行为,请先检查标准是否已包含该修正,并考虑现有解决方案。若遵循标准,请严格遵循(例如:不要遗漏forEach方法的任何参数)。 5. 跟随主导标准:Mozilla引领着JavaScript的发展。JavaScript语言的创建者Brendan Eich仍在持续开发中。与其他浏览器相比,新的语言特性在Mozilla浏览器中往往最先可用。如果你想为JavaScript添加新的语言特性,请先参考Mozilla标准。例如,若要给Array对象扩展一个枚举方法,最好将其命名为forEach而非each。如果确实需要提供尚不存在的语言特性,请紧密跟随现有标准(参考上述示例)。 6. 保持灵活性:如果我想要修改行为而不改变你的源码,这是否容易?如果不够容易,请使其更易于实现。 7. 管理内存:大家担心内存泄漏,你要尽力而为。 8. 淘汰浏览器嗅探:浏览器厂商似乎将永远通过添加新特性来竞争。作为库的开发者,你要跟得上最新的潮流。偶尔浏览一次Ajaxian是不够的,你必须如奴隶般阅读每一篇博客文章以找到下一个hack。浏览器嗅探会上瘾的。 9. 小巧更佳:各种JavaScript库已经成熟,某些库已应用在主流网站上。但并不是所有人都拥有2MBit的DSL带宽,因此请保持库的小巧。更好的做法是,提供一个打包页面,允许用户按照需求有效地构建自己的库。 10. 第十条规则:Good ol' tenth rule(这似乎是一个口语用法,翻译存在困难)。你可以始终依赖第十条规则。这就是:保持可预测性。我应该可以猜到你的方法是用来做什么的。即使我不知道某个方法的名字,也应该能让我猜出来。 11. 附加规则: 文档,虽然恼人但绝对是需要去做的。 你使用的命名空间越多,我就越难记住,就如同你的电话号码一样。 记住:可能有数百万人将执行你的代码。