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. 附加規則
文檔,惱人但絕對是需要去做的。
你用的命名空間越多,我就越難記住,就如你的電話號碼一樣。
記住:可能有數百萬人將執行你的代碼。