爲什麼很多國內公司不使用jQuery等開源JS框架,而選擇自己開發JavaScript框架?

strong-lee


主要從兩方面考慮,一個是安全性,一個是可維護性。

從安全性方面講,作為軟件公司,開發產品並提供給客戶使用,必須對客戶負責,任何代碼上的瑕疵都可能影響產品的使用,jQuery作為開源的第三方的工具集,難免有瑕疵,或者與自己項目功能以及邏輯代碼存在不兼容性,都有可能出現問題,當出問題時,如果能找出問題所在並修正那還好,找不出則後果非常嚴重,安全性是需要考慮的首要要素。

再從可維護性方面講,一般都會有自己的業務特點,業務邏輯的實現各不相同,作為軟件公司,其產品是需要長期維護的,一般都會有自己的固定框架,這樣維護起來才順手。

再有,其實jQuery充其量只能應付小型網站或個人網站,嚴格來講應該算是工具集而不能算是框架,有點類似c語言中的stdio.h、stdlib.h這樣的角色,沒有軟件公司會把stdlib.h當框架使用。


順點科技


1. 開發 KISSY 之前,淘寶使用的是 YUI2 類庫。但從 2009 年開始,YUI2 在逐步退出歷史舞臺,YUI 團隊的大部分精力都投入到 YUI3 的開發中去了。從當時的情況來看,YUI2 前途堪憂,YUI3 則還不夠成熟,並且 YUI3 的定位(大而全的框架型類庫)不適合淘寶的前臺業務場景(以瀏覽型為主的展現頁面)。

2. 我自己是力推 jQuery 的。但由於歷史原因,阿里系對 jQuery 的成見很深,認為其接口太靈活,不利於團隊協作,以及其插件質量良莠不齊,社區不如 YUI 健壯。2008 年在淘寶前端內部爭辯過 jQuery,可惜我沒堅持,沒推廣成功。

3. 但當時不少新人都喜歡 jQuery 的 API 風格,jQuery 社區也發展得越來越好。我自己也是個鐵桿 jQuery API fans. 因為前兩點原因,2009 年在開發 KISSY Editor 時,底層雖然是基於 YUI2 的,但我逐步已經做了很多替換封裝,實現了一個簡易的雜糅了 YUI2 和 jQuery API 風格的底層類庫,這就是 KISSY 的原型。

4. 接下來是技術驅動的一段時期,2010 年基於 KISSY core 寫了 Switchable、Suggest 等在淘寶被大量使用的 UI 組件,一下來就推廣開來了。(中間 YUI2 和 KISSY 並存了很長時間)

5. KISSY 進一步發展,得益於核心開發成員承玉的加盟。2011 年後,KISSY 從 KISS 的定位,逐步演化成了立足於淘寶、力爭大而全、同時可定製的一個類庫。承玉做的非常不錯,還有龍藏的 Flash 組件等,以及仿 YUI3 Gallery 的組件貢獻模式,這些讓 KISSY 成為了適合淘寶業務的最佳類庫。

上面說了這麼多,總結下與樓主的問題相關的幾點:

1. 選擇什麼類庫,抑或自己開發,跟團隊的技能傾向有關。如果雅虎和阿里沒關係,或許阿里就不會這麼雅虎味,或許也就不會對 jQuery 有成見,或許現在壓根兒就沒 KISSY 什麼事。

2. 類庫的選擇離不開業務場景。如果淘寶不是瀏覽型為主的網站,而是個個頁面都像 GMail 一樣複雜,那也許淘寶選擇的類庫會是 ExtJS 或 Google Closure 或 YUI3 等等。其實淘寶的後臺項目中,還真有不少是用 ExtJS 的。

3. 對於商業公司來說,類庫的重點不是基礎模塊,而是業務模塊。這裡的業務模塊包括淘寶的登錄註冊等模塊,也包括 Switchable、Suggest 等泛業務模塊(比如淘寶首頁的搜索提示,看似是通用的,其實是跟淘寶的業務類型分不開的。YUI2 也有一個 Autocomplete 組件,但其龐大的體積根本不適應淘寶)。

4. 類庫的選擇,還跟整個業界的環境和團隊決策者的眼光相關。比如從去年開始,前端社區越來越意識到了開放共榮的重要性,意識到了規範的重要性。CommonJS、AMD 等等,以及 NodeJS 的興起,這一切變化,也在悄然改變著大家的抉擇。這是我開發 SeaJS 的原因。如今,我們有了更好的、更偷懶、同時更靈活的選擇和組合解決方案。

任何路都沒什麼錯,關鍵是,要知道自己在哪。

軍武大國


jq算不上框架,算類庫,只能說便捷的代替某些js原生操作以及擴展了js的一些方法,讓js更易用。至於自己開發還是用現成框架,看成本了,你團隊就一個程序員負責前端,開發個框架就別想了,老鼻子費勁了,你項目要是有個前端團隊10個程序員,搞個簡單地框架也不算事。問題的本質在於用jq和用其他框架不衝突,總之項目越大你就會越追求邏輯明瞭統一,就會發現沒有哪個框架是完美適用的,就會發現累贅很多。一個3kb的js引入和一個4kb的引入,在面對每秒上百萬次請求的時候,就得做出選擇。其實我越來越發現jq是個累贅了,原生雖然寫起來略複雜,但是不用引入,出了問題好追逆,在新用戶發展的階段,流量開銷的壓力要小的多。當然也可以引入公共jq,比如百度dns加速的或者新浪的,臥槽扯遠了


專業畫神仙


因為JQuery只是一個入門的輔助框架而已,並不是符合企業級開發的框架,一個公司總會有牛人開發出一種更符合業務的框架。另外JQuery也沒有啥版權問題。他也不算框架,頂多全是一個工具類庫。

而真正意義上的框架其實是react, vue等,他們實現了一種思路,能夠讓前端開發做到分層,抽象,降低模塊耦合度,適合團隊開發。而這些要求都是單純JQuery做不到的。


假裝有範


因為jquery不是框架…他只是個選擇器…

框架基本都要自己開發…因為你最終面對客戶…客戶的思維是非常放飛自我的…也就是你框架得隨著客戶改…很抱歉…甲方真的可以為所欲為的…

基於jquery的框架是目前的主流框架…功能強大簡單易學…

至於什麼vue…react…angularjs…啥的根本不用學…一是簡單問題複雜化…二是明年說不定那個就死了…等決出一個框架穩定個3-4年再學來得及…

另外…我個人認為前端MVC就是腦殘設計…所謂的前後分離…最終目的就是把服務功能和界面美工分離開…這樣界面可以不受程序員審美的制約…前端MVC明顯還是得用程序員…明顯的去HTML化…這就是一種倒退…忽悠火個3-4年基本就完犢子了…


ACME63610374577


jQuery出現比較早,曾經是最流行的javascript的開源庫,其基本是開發UI用戶界面的組件庫,但是,這幾年,基於javascript的框架風起雲湧,jQuery變成配角了,配和其他框架使用,例如,bootstrap框架。


分享到:


相關文章: