JavaScript库 开发规则


Posted in Javascript onJanuary 31, 2009

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 相关文章推荐
纯js和css实现渐变色包括静态渐变和动态渐变
May 29 Javascript
基于jQuery实现表单提交验证
Nov 24 Javascript
jQuery通过deferred对象管理ajax异步
May 20 Javascript
JS从数组中随机取出几个数组元素的方法
Aug 02 Javascript
前端js实现文件的断点续传 后端PHP文件接收
Oct 14 Javascript
浅析js的模块化编写 require.js
Dec 07 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
js实现tab切换效果
Feb 16 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
javascript 数据存储的常用函数总结
Jun 01 Javascript
小程序云开发如何实现图片上传及发表文字
May 17 Javascript
解决vue2中使用elementUi打包报错的问题
Sep 22 Javascript
最近项目写了一些js,水平有待提高
Jan 31 #Javascript
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
Jan 30 #Javascript
javascript Xml增删改查(IE下)操作实现代码
Jan 30 #Javascript
借用Google的Javascript API Loader来加速你的网站
Jan 28 #Javascript
javascript打开新窗口同时关闭旧窗口
Jan 16 #Javascript
JavaScript URL参数读取改进版
Jan 16 #Javascript
JavaScript 在线压缩和格式化收藏
Jan 16 #Javascript
You might like
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
PHP之变量、常量学习笔记
2008/03/27 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
PHP实现图片压缩
2020/09/09 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
bootstrap表格分页实例讲解
2016/12/30 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python实现中文输出的两种方法
2015/05/09 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
为什么相对PHP黑python的更少
2020/06/21 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
JAVA程序员自荐书
2014/01/30 职场文书
中秋节主持词
2014/04/02 职场文书
高中生操行评语
2014/04/25 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
思想品德课教学反思
2016/02/24 职场文书
MySQL基础(一)
2021/04/05 MySQL
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
spring 项目实现限流方法示例
2022/07/15 Java/Android