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 相关文章推荐
Confirmer JQuery确认对话框组件
Jun 09 Javascript
一个关于javascript匿名函数的问题分析
Mar 30 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
easyui Droppable组件实现放置特效
Aug 19 Javascript
JS+CSS实现下拉刷新/上拉加载插件
Mar 31 Javascript
原生JS实现 MUI导航栏透明渐变效果
Nov 07 Javascript
Vue 实现双向绑定的四种方法
Mar 16 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
layer.alert回调函数执行关闭弹窗的实例
Sep 11 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 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查看一个变量的占用内存的实例代码
2020/03/29 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
浅谈Python中的数据类型
2015/05/05 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
python简单贪吃蛇开发
2019/01/28 Python
浅谈python常用程序算法
2019/03/22 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
文明餐桌活动方案
2014/02/11 职场文书
公关活动策划方案
2014/05/25 职场文书
主婚人致辞精选
2015/07/28 职场文书
团队拓展训练感想
2015/08/07 职场文书
小学数学教学随笔
2015/08/14 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
python元组打包和解包过程详解
2021/08/02 Python
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers