文档章节

JavaScript库开发者们的规则

Yomut
 Yomut
发布于 2015/04/08 15:40
字数 837
阅读 9
收藏 0

1. 保持无侵入性 我的HTML标记不想知道你的JavaScript代码。

 

2. 严禁修改和扩展Object.prototype! 这条很重要,因此需要一条完全针对它的规则。对象是JavaScript功能的基本构建模块,不要搞乱它们。

 

3. 不要过分扩展 对JavaScript内建对象的扩展越少越好。别误解我的意思。JavaScript的原生对象中有用的方法是有点少,有时不得不添加一两个自己的方法。但是,对于富有创造力的(库)程序员来说,添加这“一两个”方法是不够的。然而,请停下来!添加需要的就好。你对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. 附加规则 
文档,恼人但绝对是需要去做的。
你用的命名空间越多,我就越难记住,就如你的电话号码一样。
记住:可能有数百万人将执行你的代码。



© 著作权归作者所有

共有 人打赏支持
Yomut
粉丝 18
博文 191
码字总数 167789
作品 0
厦门
后端工程师
私信 提问
JavaScript开发工具大全

译者按: 最全的JavaScript开发工具列表,总有一款适合你! 原文: THE ULTIMATE LIST OF JAVASCRIPT TOOLS 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有...

Fundebug
2017/06/19
0
0
开发者必备的 12 个 JavaScript 库

现在 web 设计是最有趣的了,做好 web 设计不仅要熟练使用 Javascript,css 和 html 等,还要有自己的创意设计。为了方便大家发挥自己的创意,就产生了很多 JS 框架,Node.js 扩展等等。有了...

oschina
2014/01/31
7.4K
10
对于JavaScript,开发者更关注哪些方面

在技术社区或论坛中,某一个技术或观点可能会引起用户的广泛讨论,甚至争吵。但也有一些技术帖子则比较平静。 James Padolsey观察了一些JavaScript社区,总结出了开发者更关心JavaScript的哪...

oschina
2012/08/28
1K
11
Web 开发者必备的 14 个 JavaScript 音频库

网页设计可能是现在最有趣的领域之一了。这块的东西对所有的人,不管是知识储备里有料没料的,都敞开大门,机会多多哦。 其最大的特点就是随着时间的推移,实践的深入,你可以慢慢学习着成为...

oschina
2014/02/04
8.1K
13
好的 web 开发人员应该知道的 10 件事

我喜欢在web开发中对不同技术的运用。作为一个好的web开发人员你必须让自己处在不断的学习过程中,因为有很多重要的技术随时都在发生着变化。 这里列出了每一个好的web开发人员都具备的10项技...

Yogoo
2013/01/09
8.8K
93

没有更多内容

加载失败,请刷新页面

加载更多

NEO区块链-DAPP开发直通车-第零篇

什么是DAPP DAPP 是以太坊发明的词汇 Decentralized Application. 目前基于区块链技术开发的应用程序广泛的接受使用了这一名称。 NEL将为开发DAPP提供全面的服务 什么是NEL NEL是 “NewEcon...

NEO-FANS
13分钟前
0
0
可视化软件VisIt在Ubuntu18.04上的安装

可视化软件VisIt在Ubuntu18.04上的安装 参考文档及使用说明 1.下载 在官网下载页面下载合适版本的安装文件,Ubuntu有专用的 https://wci.llnl.gov/simulation/computer-codes/visit/executa...

佚文
19分钟前
0
0
GROUP BY GROUPING SETS

GROUPING SETS 子句是 SELECT 语句的 GROUP BY 子句的扩展。通过 GROUPING SETS 子句,您可采用多种方式对结果分组,而不必使用多个 SELECT 语句来实现这一目的。这就意味着,能够减少响应时...

hblt-j
29分钟前
2
0
selenium之表格的定位

真的勇士, 敢于直面惨淡的warning、 敢于正视淋漓的error 目录 被测试网页的HTML代码 1.遍历表格所有单元格 2.定位表格中的某个元素 3.定位表格中的子元素 总结 浏览器网页常常会包含各类表...

程序猿拿Q
34分钟前
1
0
adb命令启动展讯平台工厂模式

adb命令启动展讯工厂模式: adb shell am start com.sprd.engineermode/com.sprd.engineermode.EngineerModeActivity 其它系统应用启动命令: 其他的一些应用启动命令,如下所示: calendar...

东街小霸王
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部