为什么很多国内公司不使用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框架。


分享到:


相關文章: