为什么Facebook不使用jQuery(或类似的)?

dyn*_*mic 22 javascript jquery frameworks facebook

Facebook基于JavaScript.为什么它不依赖于jQuery(或任何其他类似的库)?

编辑:为何关闭此问题?这不是主观的.facebook不使用jQuery(或任何其他框架)是有原因的,我要求的.

sel*_*bie 51

简短的回答:你将不得不问Facebook开发团队.

最佳猜测:

  1. 拥有大型软件产品(以及成熟的代码库)的大型公司倾向于坚持使用有效的方法 - 即使已经存在一个很有吸引力的流行框架.请记住,Facebook早在JQuery被认为是标准之前就已存在.

  2. 他们可能会在未来的许多年里支持他们现有的代码.对"新语言或框架"进行"切换"的成本比率的好处可能太低,无法保证重写或转换.举个例子:Sun没有将Solaris的大部分内容移植到Java.只有少量的Windows是用C#编写的.

  3. 在2011年我第一次写这篇文章的时候:如果你真的看过Facebook的网站,他们的DOM结构并不复杂.他们没有很多动画.它们不是一个非常重的AJAX网站.鉴于此,JQuery可能不会引人注目. 更新 - 2015年:FB比几年前更具活力.所以#3在这里的重量不如2011年.

  4. 此外,当您有多个团队为单个软件产品(或网站)做出贡献时,每个人都必须在同一个框架上实现标准化.如果每个团队都集成了不同的框架,那么代码就会通过所有这些不同库的链接而迅速膨胀.对于网站,这意味着更长的页面加载时间.

  5. JQuery旨在支持最大的浏览器集.在某些情况下,这可能意味着"针对最低公分母进行优化".FB可能希望在可用时利用更新的浏览器功能.

  6. FB可能不希望太过"锁定"到JQuery.众所周知,JQuery对一些处于测试阶段的新浏览器存在一些漏洞.现在,如果Facebook拥有基于JQuery 1.6的百万行代码,那么近年来在IE 10,FF 5和Chrome 12上运行时可能会出现问题.为了实现这一目标,他们必须升级到JQuery 1.7,但这意味着需要在整个代码库中进行大量测试.

  7. 最后,他们可能有一些比JQuery更好的内部工作.如果Facebook已经有一个服务器端框架,根据浏览器发出页面请求输出HTML + JS,我不会感到惊讶.

我认识到这些答案都不是很受欢迎.您团队中的哪位开发人员不想切换到最新最好的技术?但是,当您考虑业务案例和支持框架相对于业务规模的成本时,您必须谨慎行事.

  • 我认为最有可能是7号.如果他们没有框架,我会感到惊讶.jQuery带有很多功能,facebook可能不需要大部分内容.当涉及到一天数十亿的页面加载时,每个字节都很重要!理所当然的事情就是拥有一个能够带来所需功能的框架.没有更多,仅此而已 (4认同)

Jar*_*ish 5

因为他们选择做自己的事?