写给JavaScript库开发者们的规则

来源:51js 时间:2008-10-26 12:30:00 

这是base2的作者Dean Edwards 2007年3月份的一篇文章。最近正在折腾JavaScript库,感觉Dean给出的这些规则很中肯,忍不住翻译了下

原文在这里:http://dean.edwards.name/weblog/2007/03/rules/

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. 附加规则
文档,恼人但绝对是需要去做的。
你用的命名空间越多,我就越难记住,就如你的电话号码一样。
记住:可能有数百万人将执行你的代码。

标签:javascript,库,规则
0
投稿

猜你喜欢

  • 网站注册那些事儿

    2010-01-05 16:49:00
  • SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)

    2012-07-21 14:45:15
  • ASP 连接mysql信息(strConnString)

    2009-10-29 12:02:00
  • 长文章自动分页类

    2008-09-10 12:11:00
  • HTTP 错误 500.100 - 内部服务器错误 - ASP 错误

    2008-09-12 13:07:00
  • Oracle数据库的备份及恢复策略研究

    2010-07-16 12:54:00
  • SqlServer表死锁的解决方法分享

    2011-09-30 11:16:16
  • 以用户为中心的WEB表单

    2010-08-03 12:11:00
  • 好用的asp防SQL注入代码

    2008-10-24 08:36:00
  • 网页模式化窗口

    2008-04-27 20:52:00
  • IE8 的 noscript 标签 Bug

    2009-08-18 12:37:00
  • 成为一个顶级设计师的第二准则

    2008-04-01 09:41:00
  • Discuz!NT 论坛整合ASP程序论坛

    2011-03-31 10:40:00
  • SQL Server 2005 Express版企业管理器下载

    2009-10-06 14:54:00
  • 用SQL语句生成带有小计合计的数据集脚本

    2009-01-06 11:33:00
  • 怎样在MySQL数据库中导出整个数据库

    2008-12-31 15:13:00
  • javascript 获取中文字符串长度

    2009-10-18 12:06:00
  • Oracle SQL性能优化系列学习三

    2010-07-23 13:08:00
  • 各种鼠标经过图片边框加粗效果整理

    2007-09-29 21:43:00
  • 按键标示的设计体验

    2008-08-27 12:06:00
  • asp之家 网络编程 m.aspxhome.com