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 相关文章推荐
javascript学习笔记(十二) RegExp类型介绍
Jun 20 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 Javascript
jQuery中获取checkbox选中项等操作及注意事项
Nov 24 Javascript
浅谈JavaScript中的String对象常用方法
Feb 25 Javascript
javascript实现校验文件上传控件实例
Apr 20 Javascript
JS使用正则表达式除去字符串中重复字符的方法
Nov 05 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
Jun 13 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
Apr 28 Javascript
在项目vue中使用echarts的操作步骤
Sep 07 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的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
JS高级笔记
2011/07/13 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
详解python之多进程和进程池(Processing库)
2017/06/09 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
numpy返回array中元素的index方法
2018/06/27 Python
python plotly画柱状图代码实例
2019/12/13 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
公共事业管理本科生求职信
2013/10/07 职场文书
调研汇报材料范文
2014/08/17 职场文书
2014年施工员工作总结
2014/11/18 职场文书
化验室安全管理制度
2015/08/06 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
用Python实现屏幕截图详解
2022/01/22 Python