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 相关文章推荐
使用jquery mobile做幻灯播放效果实现步骤
Jan 04 Javascript
javascript时间自动刷新实现原理与步骤
Jan 06 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
javascript判断数组内是否重复的方法
Apr 21 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
Mar 14 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
d3.js实现简单的网络拓扑图实例代码
Nov 06 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
Nov 23 Javascript
three.js快速入门【推荐】
Jan 21 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
Aug 16 Javascript
Node.js学习之地址解析模块URL的使用详解
Sep 28 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
php+mysql查询优化简单实例
2015/01/13 PHP
document.all与WEB标准
2020/05/13 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
Javascript的闭包详解
2014/12/26 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
javascript 作用于作用域链的详解
2017/09/27 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python下载网络小说实例代码
2018/02/03 Python
python pygame实现方向键控制小球
2019/05/17 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
运动会的口号
2014/06/09 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python