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 相关文章推荐
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
Feb 22 Javascript
node.js中的url.format方法使用说明
Dec 10 Javascript
使用jquery.qrcode.js生成二维码插件
Oct 17 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
Dec 13 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 Javascript
使用Nuxt.js改造已有项目的方法
Aug 07 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
jQuery 移除事件的方法
Jun 20 jQuery
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 Javascript
Javascript实现打鼓效果
Jan 29 Javascript
js中Object.create实例用法详解
Oct 05 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
php的memcached客户端memcached
2011/06/14 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
document.createElement()用法
2013/03/13 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
python使用RNN实现文本分类
2018/05/24 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
python config文件的读写操作示例
2019/09/27 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
Python多线程获取返回值代码实例
2020/02/17 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
公司财务工作总结的自我评价
2013/11/23 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
辛亥革命观后感
2015/06/02 职场文书
高一军训感想
2015/08/07 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript