abstrakt:折騰過 KISSY 類庫,簡單說幾點(diǎn):1. 開發(fā) KISSY 之前,淘寶使用的是 YUI2 類庫。但從 2009 年開始,YUI2 在逐步退出歷史舞臺(tái),YUI 團(tuán)隊(duì)的大部分精力都投入到 YUI3 的開發(fā)中去了。從當(dāng)時(shí)的情況來看,YUI2 前途堪憂,YUI3 則還不夠成熟,并且 YUI3 的定位(大而全的框架型類庫)不適合淘寶的前臺(tái)業(yè)務(wù)場景(以瀏覽型為主的展現(xiàn)頁面)。2. 我自己是力推 jQuery
折騰過 KISSY 類庫,簡單說幾點(diǎn):
1. 開發(fā) KISSY 之前,淘寶使用的是 YUI2 類庫。但從 2009 年開始,YUI2 在逐步退出歷史舞臺(tái),YUI 團(tuán)隊(duì)的大部分精力都投入到 YUI3 的開發(fā)中去了。從當(dāng)時(shí)的情況來看,YUI2 前途堪憂,YUI3 則還不夠成熟,并且 YUI3 的定位(大而全的框架型類庫)不適合淘寶的前臺(tái)業(yè)務(wù)場景(以瀏覽型為主的展現(xiàn)頁面)。
2. 我自己是力推 jQuery 的。但由于歷史原因,阿里系對 jQuery 的成見很深,認(rèn)為其接口太靈活,不利于團(tuán)隊(duì)協(xié)作,以及其插件質(zhì)量良莠不齊,社區(qū)不如 YUI 健壯。2008 年在淘寶前端內(nèi)部爭辯過 jQuery,可惜我沒堅(jiān)持,沒推廣成功。
3. 但當(dāng)時(shí)不少新人都喜歡 jQuery 的 API 風(fēng)格,jQuery 社區(qū)也發(fā)展得越來越好。我自己也是個(gè)鐵桿 jQuery API fans. 因?yàn)榍皟牲c(diǎn)原因,2009 年在開發(fā) KISSY Editor 時(shí),底層雖然是基于 YUI2 的,但我逐步已經(jīng)做了很多替換封裝,實(shí)現(xiàn)了一個(gè)簡易的雜糅了 YUI2 和 jQuery API 風(fēng)格的底層類庫,這就是 KISSY 的原型。
4. 接下來是技術(shù)驅(qū)動(dòng)的一段時(shí)期,2010 年基于 KISSY core 寫了 Switchable、Suggest 等在淘寶被大量使用的 UI 組件,一下來就推廣開來了。(中間 YUI2 和 KISSY 并存了很長時(shí)間)
5. KISSY 進(jìn)一步發(fā)展,得益于核心開發(fā)成員承玉的加盟。2011 年后,KISSY 從 KISS 的定位,逐步演化成了立足于淘寶、力爭大而全、同時(shí)可定制的一個(gè)類庫。承玉做的非常不錯(cuò),還有龍藏的 Flash 組件等,以及仿 YUI3 Gallery 的組件貢獻(xiàn)模式,這些讓 KISSY 成為了適合淘寶業(yè)務(wù)的最佳類庫。
上面說了這么多,總結(jié)下與樓主的問題相關(guān)的幾點(diǎn):
1. 選擇什么類庫,抑或自己開發(fā),跟團(tuán)隊(duì)的技能傾向有關(guān)。如果雅虎和阿里沒關(guān)系,或許阿里就不會(huì)這么雅虎味,或許也就不會(huì)對 jQuery 有成見,或許現(xiàn)在壓根兒就沒 KISSY 什么事。
2. 類庫的選擇離不開業(yè)務(wù)場景。如果淘寶不是瀏覽型為主的網(wǎng)站,而是個(gè)個(gè)頁面都像 GMail 一樣復(fù)雜,那也許淘寶選擇的類庫會(huì)是 ExtJS 或 Google Closure 或 YUI3 等等。其實(shí)淘寶的后臺(tái)項(xiàng)目中,還真有不少是用 ExtJS 的。
3. 對于商業(yè)公司來說,類庫的重點(diǎn)不是基礎(chǔ)模塊,而是業(yè)務(wù)模塊。這里的業(yè)務(wù)模塊包括淘寶的登錄注冊等模塊,也包括 Switchable、Suggest 等泛業(yè)務(wù)模塊(比如淘寶首頁的搜索提示,看似是通用的,其實(shí)是跟淘寶的業(yè)務(wù)類型分不開的。YUI2 也有一個(gè) Autocomplete 組件,但其龐大的體積根本不適應(yīng)淘寶)。
4. 類庫的選擇,還跟整個(gè)業(yè)界的環(huán)境和團(tuán)隊(duì)決策者的眼光相關(guān)。比如從去年開始,前端社區(qū)越來越意識(shí)到了開放共榮的重要性,意識(shí)到了規(guī)范的重要性。CommonJS、AMD 等等,以及 NodeJS 的興起,這一切變化,也在悄然改變著大家的抉擇。這是我開發(fā) SeaJS 的原因。如今,我們有了更好的、更偷懶、同時(shí)更靈活的選擇和組合解決方案。
任何路都沒什么錯(cuò),關(guān)鍵是,要知道自己在哪。