保持無侵入性 我的HTML標記不想知道你的JavaScript代碼
嚴禁修改和擴展Objectprototype! 這條很重要因此需要一條完全針對它的規則對象是JavaScript功能的基本構建模塊不要搞亂它們
不要過分擴展 對JavaScript內建對象的擴展越少越好別誤解我的意思JavaScript的原生對象中有用的方法是有點少有時不得不添加一兩個自己的方法但是對於富有創造力的(庫)程序員來說添加這“一兩個”方法是不夠的然而請停下來!添加需要的就好你對JavaScript內建對象的擴展越少你的代碼與其它框架產生的沖突的概率就越少
跟隨標准 作為一個庫的開發者你定義JavaScript代碼的模式設計模式是編程語言能力弱的體現 記住JavaScript和DOM還在不斷地被規格化如果你想“修正”某些東西最好先看看是否已經被修正考慮已有的解決方案 如果你跟隨標准就緊緊的跟著標准走(比如別遺漏了forEach 方法的某個參數)
或著跟隨主導 Mozilla引領著JavaScript JavaScript語言的創建者Brendan Eich 還在持續開發和其它浏覽器相比在Mozilla浏覽器中這些新的語言特性最先可用 如果你想給JavaScript添加新的語言特性可以先瞧瞧Mozilla標准例如你想給Array對象擴展一個枚舉方法時最好把這個方法取名為forEach而不是each 如果你的確想提供尚不存在的語言特性那麼請緊緊跟隨著現有的標准走(參考上面的例子)
保持靈活 如果我想修改行為而不改變你的源碼這容易不?如果不夠容易讓它更容易些
管理內存 大家擔心內存洩漏你要盡力而為
淘汰浏覽器嗅探 貌似浏覽器廠商們將永遠通過添加新特性來競爭;) 作為庫的開發者你要跟得上最新的潮流偶爾浏覽一次Ajaxian是不夠的你必須奴隸般地閱讀每一篇博客文章以找到下一個hack 浏覽器嗅探會上瘾的
小巧更佳 各種JavaScript庫已經成熟某些庫已經應用在主流網站上但並不是所有人都裝了MBit的DSL帶寬因此請保持庫的小巧更好的做法是提供一個打包頁面允許按照我的需求有效地構建自己的庫
第十條規則 Good ol’ tenth rule(好像是一個口語用法不知道怎麼翻譯好) 你可以始終依賴第十條規則這就是 保持可預測 我應該可以猜到你的方法是用來干嘛的如果我不知道某個方法的名字也應該能讓我猜出來
附加規則
文檔惱人但絕對是需要去做的
你用的命名空間越多我就越難記住就如你的電話號碼一樣
記住可能有數百萬人將執行你的代碼
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19989.html