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 相关文章推荐
常见表单重复提交问题整理及解决方法
Nov 13 Javascript
jquery对单选框,多选框,文本框等常见操作小结
Jan 08 Javascript
jquery防止重复执行动画避免页面混乱
Apr 22 Javascript
JS中实现简单Formatter函数示例代码
Aug 19 Javascript
javascript事件绑定学习要点
Mar 09 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
Apr 19 Javascript
修改js confirm alert 提示框文字的简单实例
Jun 10 Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 Javascript
js字符串倒序的实例代码
Nov 30 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
vue-父子组件和ref实例详解
Nov 10 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 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
python os用法总结
2018/06/08 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
Python try except finally资源回收的实现
2021/01/25 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
法国足球商店:Footcenter
2019/07/06 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
求职自荐信
2013/12/14 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
党员干部一句话承诺
2014/05/30 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
公司与个人合作协议书
2016/03/19 职场文书
Python竟然能剪辑视频
2021/05/25 Python
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
MySQL实现配置主从复制项目实践
2022/03/31 MySQL