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标签在页面中的位置探讨
Apr 11 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
微信小程序 教程之列表渲染
Oct 18 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
微信小程序 图片绝对定位(背景图片)
Apr 05 Javascript
vue父组件向子组件(props)传递数据的方法
Jan 02 Javascript
原生JS封装_new函数实现new关键字的功能
Aug 12 Javascript
node.js环境搭建图文详解
Sep 19 Javascript
详解适配器在JavaScript中的体现
Sep 28 Javascript
小程序实现多选框功能
Oct 30 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
Aug 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的面向对象编程
2006/10/09 PHP
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
H5实现仿flash效果的实现代码
2017/09/29 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
python调用摄像头的示例代码
2020/09/28 Python
python 带时区的日期格式化操作
2020/10/23 Python
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
新农村建设标语
2014/06/24 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
公司表扬信格式
2015/05/04 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
一文搞懂php的垃圾回收机制
2021/06/18 PHP
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
python画条形图的具体代码
2022/04/20 Python
Tomcat弱口令复现及利用
2022/05/06 Servers