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 相关文章推荐
将string解析为json的几种方式小结
Nov 11 Javascript
jquery图片放大功能简单实现
Aug 01 Javascript
jquery.qrcode在线生成二维码使用示例
Aug 21 Javascript
javascript感应鼠标图片透明度显示的方法
Feb 24 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
Jun 05 Javascript
超级给力的JavaScript的React框架入门教程
Jul 02 Javascript
JS获取当前页面名称的简单实例
Aug 19 Javascript
JS查找字符串中出现最多的字符及个数统计
Feb 04 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 Javascript
JS实现提交表单前的数字及邮箱校检功能
Nov 13 Javascript
JS实现字符串中去除指定子字符串方法分析
May 17 Javascript
vue动态配置模板 'component is'代码
Jul 04 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在线生成ico文件的代码
2007/10/09 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
webpack优化的深入理解
2018/12/10 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
Python实现的科学计算器功能示例
2017/08/04 Python
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
Python编程实现正则删除命令功能
2017/08/30 Python
Python进程间通信之共享内存详解
2017/10/30 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python如何生成各种随机分布图
2018/08/27 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
中考标语大全
2014/06/05 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
2014年档案室工作总结
2014/12/01 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
Golang生成Excel文档的方法步骤
2021/06/09 Golang
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技