JS库开发原则
1.保持无侵入式
html代码不必关心你的javascript在干什么。
2.严禁使用Object.prototype
这一条是如此重要以至于它有资格单独成为一条原则,对象是javascript最基本的构建元素,别把他弄乱了。
3.不要过度扩展
对javascript的内建对象的扩展越少越好。别误会,内建javascript对象本身有用的方法很少,你可能觉得有必要增加自己的一两个方法, 但是一两个对一个有创造力(js库)的程序员来说是不够的,停下来,只增加你真正想要的。越少去扩展内建对象,你与其他框架发生冲突的可能性就越少。
4.紧随标准
作为一个js库开发者,你在为javascript代码建立模式,然而模式在编程语言中意味着差劲,记住,关于javascript和DOM新 标准在不停地修订中,如果你打算去“修正”某些东西,那么先看看那些东西是否已经被修正过了。参考一下已有的解决方案。一旦跟随标准,请别掉队(比如,在 forEach方法中一个参数也不要漏掉)
5.或者跟随领袖
Mozilla引领javascript的潮流。该语言的发明 者,Brendan Eich,仍然在改进它。js语言的新特性总是在Mozilla浏览器中最先出现,如果你打算给javascript语言增加新特性,请参考 Mozilla标准先。例如,如果你想增加一个遍历数组的方法,那么请把这个方法命名为forEach而不是each。而如果你是在补全缺失的功能,则要 严格参照现有标准(参见上一条)。
6.灵活一点
如果我想在不动你的js库源代码的情况下更改某个方法的行为,是否足够简单?如果还不够简单就让它更简单一点吧。
7.管理好内存
8.去除浏览器检测
似乎浏览器厂商在增加新特性的竞争上永无休止。作为js库开发者,你应该紧跟最新的潮流,你不应该仅仅是偶尔看一下Ajaxian,你应该不知疲倦地阅读每一篇blog以便获知最新的hack,浏览器检测会让你越陷越深。
9.越小越好
许多js库已很成熟,其中一些已经被一些很重要的网站所采用。但不是每个人都在用2M的DSL宽带,所以保持你的js库小巧。最好能提供一个build页面让我能够快速的根据我的需要定制出我的js库。
10.第十条
很棒第十条,你总能信赖这一条。第十条是:可预见性。我应该可以根据方法的名字猜到它是干什么的,同样地,如果记不起一个方法的名字,我也应该可以猜得到。
11.附加的几条
1)文档,虽然讨厌但意义重大。
2)多用名字空间,这样我才不至于打电话骚扰你。
3)记住数以百万计的用户潜在用户可能会运行你的代码。
顺便声明,base2没有更改任何内建的javascript对象。
本文翻译自Rules For JavaScript Library Authors,这是Dean Edwards在开发base2时候的一些体会,对于在开发自己的js库的同学应该有较强的借鉴意义。Dean Edwards是公认的javascript高手,jQuery的作者Jhone Resig也很欣赏他。
写的不错,以后经常过来看看!一起加油!
网上赚钱的方法
6 Jun 10 at 8:17 am
hey there and thanks for your information ¡V I’ve certainly picked up anything new from proper here. I did on the other hand expertise several technical points using this site, since I skilled to reload the website a lot of times prior to I may get it to load properly. I were pondering if your web host is OK? No longer that I am complaining, however sluggish loading circumstances occasions will sometimes impact your placement in google and could damage your high quality ranking if ads and ***********|advertising|advertising|advertising and *********** with Adwords. Anyway I’m adding this RSS to my e-mail and can glance out for much more of your respective exciting content. Make sure you update this once more very soon..
Unzueta2580@ymail.com
24 Oct 11 at 3:52 pm
Wohh just what I was searching for, thankyou for posting . “If it’s meant to be it’s up to me.” by Terri Gulick.
King Pelletiu
3 Nov 11 at 5:44 pm
Hi. Cool post. There’s a problem with the website in chrome, and you might want to test this… The browser is the marketplace leader and a big element of other folks will omit your wonderful writing because of this problem.
JDM Cars Yo
2 Feb 12 at 10:40 am