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 30 Javascript
javascript面向对象编程代码
Dec 19 Javascript
node.js中实现同步操作的3种实现方法
Dec 05 Javascript
浅谈 javascript 事件处理
Jan 04 Javascript
js下将金额数字每三位一逗号分隔
Feb 19 Javascript
基于Javascript实现的不重复ID的生成器
Dec 25 Javascript
JavaScript实现分页效果
Mar 28 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
Apr 28 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
May 06 Javascript
Vue微信公众号网页分享的示例代码
May 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
德生PL660的电路分析和打磨
2021/03/02 无线电
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
10款最好的Web开发的 Python 框架
2015/03/18 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
培训协议书范本
2014/04/22 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
校庆标语集锦
2014/06/25 职场文书
现役军人家属慰问信
2015/03/24 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
pandas进行数据输入和输出的方法详解
2022/03/23 Python
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript