V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qzhai
V2EX  ›  问与答

为什么百度还在用 jQuery

  •  2
     
  •   qzhai · 2020-12-21 15:25:26 +08:00 · 10719 次点击
    这是一个创建于 1212 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天 偶尔发现 百度 还在用着 jQuery 1.10.2 版本 而且还同时用着 vue

    搜狗 360 等其他搜索引擎 也依旧 用着 jQuery 1.X 的版本

    在这个前端简历上都不咋写 jQuery 的时代

    这种项目真的很难重构么?

    感觉搜索引擎很适合用单页面用用来做。

    第 1 条附言  ·  2020-12-21 16:44:54 +08:00
    发出此问的目的其实是想问
    这么大的项目完全有能力有一个自己 jQuery 或者 Closure
    来适用自己的业务变化
    我也不认为 jQuery 能满足所有的需求
    何况百度还有很多前端项目 且都在用着不同版本的 1.x 的 jQuery
    我以为有其他的作用或者用途才留着 1.x 版本(因为百度加载性能做的很优)
    觉得奇怪才发出此问
    没想到大家的结论都是因为要安于现状。
    而且我也不认为这是座屎山。
    第 2 条附言  ·  2020-12-21 18:46:25 +08:00
    以下只是为了解释为什么我觉得应该重构,而不是安于现状。

    2004 年愚人节那天 谷歌 发布了一个叫做 Gmail 的东西。
    当时 email 的容量只有可怜的 10MB 或者 20MB,谷歌 突然说提供 1GB 的邮箱并且不断增长。
    于是,全世界疯了。
    Gmail 成为了 Web 开发的一个里程碑,第一个大规模部署的 Ajax 的应用程序。
    谷歌的工程师逐渐意识到一个高度结构化的 JavaScript 库的重要性。
    因为逻辑越来越复杂,代码量越来越多,功能也越堆越多,之前写得那些代码已经根本满足不了不断变化的需求了。
    于是工程师们做了一个 Googler 经常做的决定:我们重写吧
    于是 Gmail 的重写计划逐渐张开了,也就是今天大家看到的 Gmail 的前身。
    在整个重写的过程中,一个高度独立、结构化的 JavaScript 的库被抽象出,这就是我们熟知的 Google Closure 。
    Closure 的出现极大地改变 谷歌 内部写 JavaScript 的效率
    也被应用于更多的项目中,包括 谷歌 最赚钱的广告系统前端
    到了 2013 年,Google 内部已出现了一股暗黑势力,悄悄地开发了一个完全颠覆式的前端框架 -- AngularJS 。
    AngularJS 我就不用介绍了吧
    于是谷歌又把最赚钱的广告系统重写了一遍。
    到后来 AngularJS 更名 Angular 又把 Angular 重写了一次。
    104 条回复    2020-12-22 15:59:12 +08:00
    1  2  
    Goat121
        1
    Goat121  
       2020-12-21 15:27:21 +08:00
    重构了有啥好处么?万一出个 bug,业务停半天损失 xx 万,谁来负责?
    QBugHunter
        2
    QBugHunter  
       2020-12-21 15:31:34 +08:00
    虽然我不知道百度到底是个什么量级的项目,但觉得重构会比较难(指工程量大)
    imdong
        3
    imdong  
       2020-12-21 15:32:10 +08:00
    Too Young Too Simple

    为啥人人都在说屎山,却没啥几个人去动手重构呢,难道没去重构的都是喜欢吃屎?

    很显然,不是。
    manami
        4
    manami  
       2020-12-21 15:35:11 +08:00   ❤️ 3
    殊途同归

    jQuery 能实现的东西为何一定要用 vue ?
    murmur
        5
    murmur  
       2020-12-21 15:37:34 +08:00
    百度那页面没需求变化,也不需要改样式,也不存在兼容性问题,甚至 jq 一压缩代码体积都不大,为什么要重构
    telung
        6
    telung  
       2020-12-21 15:39:36 +08:00   ❤️ 14
    按照楼主说法百度前端只要一个就够了,首页就一个搜索框,五分钟做一个
    kop1989
        7
    kop1989  
       2020-12-21 15:40:15 +08:00   ❤️ 2
    软件开发是工程学,不是科学。
    不需要最优,而是需要最大性价比。
    hoyixi
        8
    hoyixi  
       2020-12-21 15:42:09 +08:00   ❤️ 1
    看项目,有些项目,JQ+原生 JS 写好了,根本不用怎么升级和维护。
    React Vue 之类,动不动就要升级版本,框架 API 改动大,就得跟着大改,烦死人。
    opengps
        9
    opengps  
       2020-12-21 15:42:53 +08:00   ❤️ 1
    为啥要用新的?老工程师用的最趁手的兵器并不一定必须要升级换代
    murmur
        10
    murmur  
       2020-12-21 15:43:41 +08:00
    @hoyixi React 、Vue 一样可以不升级,jquery 都不升级为啥这俩就要升级,我们用的 react 还是 15.6
    LongMaoz
        11
    LongMaoz  
       2020-12-21 15:45:46 +08:00
    写好了 满足需求,不出问题,为啥还要重构,闲的没事干?
    Sapp
        12
    Sapp  
       2020-12-21 15:46:08 +08:00   ❤️ 1
    jQuery 搭配 vue 可是 vue 前几年的一个卖点之一,因为这个用 vue 的可不少,这么干的更是多了去了,目的就是为了不重构,当时好像叫渐进式升级? vue 叫渐进式框架
    hoyixi
        13
    hoyixi  
       2020-12-21 15:46:32 +08:00
    @murmur #10
    那相当于攒着来一个大改,到时候相关的工程化工具可能也已经 N 波大更新了。改这种代码估计比重写还痛苦
    shiny
        14
    shiny  
       2020-12-21 15:46:48 +08:00
    淘宝都还在用 KISSY
    nnqijiu
        15
    nnqijiu  
       2020-12-21 15:46:57 +08:00
    为什么要重构?又不是不能满足需求,除非追求工作量 kpi
    ccoming
        16
    ccoming  
       2020-12-21 15:48:03 +08:00
    大家都知道是屎山,所以都不想去脏手。
    ianva
        17
    ianva  
       2020-12-21 15:57:24 +08:00
    先说 jQuery,对于大网站考虑的东西要多很多,比如被搜索引擎识别,jQuery 意味着什么?意味着不需要考虑 SSR,如果考虑也就意味着这个 Server 端也跟着改,这意味着啥,这个可不是一个 View 层面的变动了。

    另外是项目级量,估计没在大厂呆过的可能都不知道几十万上百万行代码的项目是怎么一代一代的相传下来的,我记得我们当年一个旺铺的陈年项目,光下载 js 资源就得等个分把钟,重构这事情可不是一个人俩人,一个团队俩团队,一年两年,中间需求都不知道丢了多少了,能不能 work 还得看 QA 慢慢测,且不说项目很可能都没 UT 。
    ianva
        18
    ianva  
       2020-12-21 16:01:58 +08:00
    想想以前一个项目,且不说啥框架不框架,就是统一一个全站通用头,就上万个网页要改动,涉及十几个部门。
    Jooooooooo
        19
    Jooooooooo  
       2020-12-21 16:04:02 +08:00
    重构带来的好处能讲明白吗?

    从老板的角度看, 最直接的是能省多少钱 /带来多少收益?
    shenyu1996
        20
    shenyu1996  
       2020-12-21 16:06:29 +08:00   ❤️ 1
    我觉得主要还是考虑 ie 兼容性吧 我记得百度应该是禁用 js 也是可以用的
    shenyu1996
        21
    shenyu1996  
       2020-12-21 16:07:22 +08:00
    毕竟装完电脑第一件事 打开 ie 进入百度 输入 chrome 回车
    shyangs
        22
    shyangs  
       2020-12-21 16:08:20 +08:00
    文件和测试可能都不齐全, 这种情况怎么重构.
    linksNoFound
        23
    linksNoFound  
       2020-12-21 16:10:05 +08:00   ❤️ 1
    淘宝的屎山更多,明明界面还是一坨,旧版本的手机浏览器无法付款
    NotFoundEgg
        24
    NotFoundEgg  
       2020-12-21 16:18:03 +08:00
    没钱没 kpi 谁来重构 万一改崩了还得背锅
    charlie21
        25
    charlie21  
       2020-12-21 16:23:15 +08:00
    还真把代码当快速消费品了?

    在某些情况下,代码的确有快速消费品的性质,但对于 jquery 这种 dependency free 的史前产物( 早于 node.js )
    除非 js 里某个 API 升级导致 jquery 不能用了,依赖于 jquery 的网站开发才会 “升级” 为 vue 什么的

    只要你依赖了错误的东西就可以天天升级了
    superrichman
        26
    superrichman  
       2020-12-21 16:24:31 +08:00 via iPhone
    又不是不能用🐶
    nutting
        27
    nutting  
       2020-12-21 16:24:53 +08:00
    前端无所谓吧,性能在用户那,jq 够了
    Ballmer
        28
    Ballmer  
       2020-12-21 16:24:57 +08:00
    他们应该有统计每天的搜索来源吧,直接暴力改是不是对低流量模式和老旧的手机有影响
    jtsai
        29
    jtsai  
       2020-12-21 16:25:08 +08:00   ❤️ 3
    mvvm 不是就比 JQuery 高级,不同的东西,有不同的应用场景,反而不管什么一上来就 vue-cli 、create-react-app 整一堆的更像新手
    yaphets666
        30
    yaphets666  
       2020-12-21 16:45:00 +08:00
    @jtsai mvvm 确实比 jQuery 高级 这个没啥好说的吧...
    jtsai
        31
    jtsai  
       2020-12-21 16:53:05 +08:00
    @yaphets666 1 个文件的东西和 1000 个文件的东西能怎么比
    kop1989
        32
    kop1989  
       2020-12-21 17:03:12 +08:00   ❤️ 2
    对于 lz 的 append 不明所以。
    软件开发本身并不能为企业带来任何价值,真正产生价值和收益的是你通过软件开发实现的业务流程。

    所以软件开发(软件工程)的最佳决策就是:让软件以最低的成本,实现所有业务需求。
    但要注意,这个“最低成本”,不是眼前的,而是有前瞻意义的最低成本。

    毕竟百度员工不是你发工资,所以你觉得重构不难,且 jQuery 不能满足业务。
    xsqfjys
        33
    xsqfjys  
       2020-12-21 17:15:15 +08:00
    我们公司的项目还有从 10 年维护到现在的 swing 客户端呢,能卖钱就行
    MeteorCat
        34
    MeteorCat  
       2020-12-21 17:26:22 +08:00 via Android
    百度支持 IE7 吗?可能是为了支持 IE 吧
    aibx
        35
    aibx  
       2020-12-21 17:39:41 +08:00
    facebook 还有明文处理密码的漏洞呢。。。都曝光了
    alakey1989
        36
    alakey1989  
       2020-12-21 17:42:01 +08:00
    能跑就行
    x86
        37
    x86  
       2020-12-21 17:44:26 +08:00   ❤️ 16
    前端 b 事多
    aibx
        38
    aibx  
       2020-12-21 18:01:45 +08:00
    @aibx 在 Facebook 展开的内部调查中发现,有 2 亿到 6 亿笔 Facebook 用户密码竟然以明文方式存储,而有权限查看的 Facebook 员工则超过 2 万名
    yuxuan
        39
    yuxuan  
       2020-12-21 18:05:03 +08:00
    不是啥业务场景都要上框架的。。。
    lixintcwdsg
        40
    lixintcwdsg  
       2020-12-21 18:06:20 +08:00
    jquery 真的是划时代的经典框架
    作为老程序员表示,jquery 的精巧和高功能性,历史地位要高过现在的 react angular vue
    jquery 真生产力工具
    ditel
        41
    ditel  
       2020-12-21 18:09:27 +08:00 via Android
    兼容性问题吧
    raaaaaar
        42
    raaaaaar  
       2020-12-21 18:13:40 +08:00 via Android
    常见的技术人员观念,实际上不是所有东西都能用纯技术的眼光看的,我以前也看那些垃圾代码不顺眼,想重构,后来事情一多,就动不了手了,而且你一重构,那新的能不能用,出了问题还是你来维护,你有那么多精力吗?问题会越来越多的,后来我,算了,能用就行。
    tlday
        43
    tlday  
       2020-12-21 18:30:24 +08:00
    jQuery 出现所解决的最重要的两个痛点,第一个是好用的跨浏览器的 API (主要是 DOM,其次是 Ajax ),第二个就是傻瓜式的浏览器兼容解决方案。

    考虑到 baidu 的用户范围之广,我觉得靠 jQuery 保留对极旧浏览器的兼容还是有必要的。
    iConnect
        44
    iConnect  
       2020-12-21 18:31:52 +08:00 via Android
    那么多政!府部门用 IE8,甚至还有 IE6
    FallenTy
        45
    FallenTy  
       2020-12-21 18:35:15 +08:00
    不要为了重构而重构。如果框架满足不了需求,才可能考虑换,不然好好的你去折腾?
    love
        46
    love  
       2020-12-21 18:51:06 +08:00 via Android
    你有一个 python2 的项目,功能稳定了也没有成长性,你会花大代价重构成 3 吗?除了看着爽一点,完全没好处
    syfless
        47
    syfless  
       2020-12-21 19:10:14 +08:00
    jquery 挺好的呀,小又易学
    rodrick
        48
    rodrick  
       2020-12-21 21:19:11 +08:00
    主要 jq 基本都能解决了,能用轻的就用轻的吧,jq 也还不算被历史淘汰,至少也要再等个三五年
    ajaxfunction
        49
    ajaxfunction  
       2020-12-21 21:30:56 +08:00
    不要自己认为甜豆腐脑好吃,就认为天下人都该吃甜豆腐脑,
    实际上,喜欢吃咸豆腐脑的人也有很多
    emeab
        50
    emeab  
       2020-12-21 21:37:12 +08:00
    又不是不能用 大企业尽可能的兼容才是关键。
    Cbdy
        51
    Cbdy  
       2020-12-21 22:32:41 +08:00 via Android
    可能因为百度技术不行吧
    alexkkaa
        52
    alexkkaa  
       2020-12-21 22:54:28 +08:00 via Android
    互联网很大, 一切依赖 seo 的都不会用这类 spa 的。
    目前国内这类 spa 很火那是因为国内网站基本上已经凉了, 百度这个历史罪人就不说了, 政策上现在已经不允许个人开网站了。

    而国外网站还是依旧很火, 别的不说就 wp 这一个就火了多少年了。

    就我自己来说前端我是不会用这类 spa 的, 后台倒是用的不少, 不过我也没看到有啥根本的优势, 估计是项目小吧。

    个人觉得这类框架要普及起来至少需要搜索引擎的跟进。
    lneoi
        53
    lneoi  
       2020-12-21 23:01:51 +08:00
    之前知乎上有一个人回答,具体忘记了,大意是说他之前改一个项目是没前后端分离的,为了改一个前端简单的东西还需要去搞 php 生成器里的东西,七七八八绕一圈。为什么不重构.. 可见是因为真的没看起来那么快就搞定的吧,还得梳理确认一下影响
    dsnake1984
        54
    dsnake1984  
       2020-12-21 23:18:41 +08:00
    兼容 IE
    shlabc
        55
    shlabc  
       2020-12-21 23:24:51 +08:00
    兼容一条,足矣
    dongguangming
        56
    dongguangming  
       2020-12-21 23:26:31 +08:00
    能满足需求,为啥要升级或改造
    shroxd
        57
    shroxd  
       2020-12-21 23:30:14 +08:00 via iPhone   ❤️ 1
    技术是用来解决问题的,不是用来堆砌的。运载火箭的发动机很牛逼,但没人会把它装在汽车上量产的
    Felldeadbird
        58
    Felldeadbird  
       2020-12-21 23:45:29 +08:00   ❤️ 1
    楼主的示例不正确。

    假如 gmail 没成功呢?

    很多改动需要勇气和成本的。你没看到人家尝过灰度测试的版本,然后又下架了……
    Cielsky
        59
    Cielsky  
       2020-12-21 23:46:22 +08:00 via Android   ❤️ 1
    重构不是目的,是手段。当前业务无法在原有基础上运行或者重构成本低于在原有基础上搭建,这才需要重构。

    不然从一堆💩山到另一堆有啥意思
    3dwelcome
        60
    3dwelcome  
       2020-12-22 02:45:44 +08:00 via Android
    只要代码量一上去,结果都一样不可控,和屎山同行。
    vue 能把项目切细,便于维护。同样有能力的人,也可以把 jq 项目管理的比较优雅,就看你有没有这个心了。
    ericls
        61
    ericls  
       2020-12-22 04:20:09 +08:00
    你自己也说了,google 的库都是由需求产生,然后抽象出来的。如果没有需求,为什么要去抽象?

    过早的 abstraction 一定 leak.

    你有一把铜的钥匙,它可以打开你面前的这道门,你会每天想着换一把金的钥匙吗?
    iyangyuan
        62
    iyangyuan  
       2020-12-22 08:21:21 +08:00
    兼容性啊兄弟
    Marven
        63
    Marven  
       2020-12-22 08:33:38 +08:00   ❤️ 1
    为什么要重构?
    xianxiaobo
        64
    xianxiaobo  
       2020-12-22 08:55:05 +08:00
    你懂前端吗?你懂业务吗?重构你出钱? jquery 换成 vue 之后,页面性能有提高还是用户体验会增强?能增强多少?你工作过吗?
    real3cho
        65
    real3cho  
       2020-12-22 09:03:52 +08:00
    赚着卖白菜的钱 操着卖白粉的心
    clxtmdb
        66
    clxtmdb  
       2020-12-22 09:08:42 +08:00
    @Marven 赞同,为什么要重构,之前设计的好,能满足业务增长和需求,要啥自行车
    tinyRat
        67
    tinyRat  
       2020-12-22 09:26:33 +08:00
    个人项目激进,企业项目稳定。
    ErwinCheung
        68
    ErwinCheung  
       2020-12-22 09:28:36 +08:00
    赚着卖白菜的钱 操着卖白粉的心
    azcvcza
        69
    azcvcza  
       2020-12-22 09:47:11 +08:00
    就大公司而言,重构不带来 KPI,还会带来无尽的麻烦,不是搞新项目,谁会去改老东西
    cumshot
        70
    cumshot  
       2020-12-22 09:47:25 +08:00
    如果一个东西没有问题,就别去动它
    BadAngel
        71
    BadAngel  
       2020-12-22 09:48:12 +08:00
    @imdong
    因为他们可能还没有屎山写的好(偷笑)
    James369
        72
    James369  
       2020-12-22 09:48:20 +08:00
    价值观不同,别人追求的是长远价值,我们追求的是短期利益。资本要利益最大化
    back0893
        73
    back0893  
       2020-12-22 09:51:50 +08:00
    ?百度搜索页面那么简单为啥不用 jquery?
    lamada
        74
    lamada  
       2020-12-22 09:52:10 +08:00
    很多项目看上去简单,但后面隐藏业务很复杂,甚至最开始负责部分业务的人员都已离职,这种情况下随便改动代码是很危险的
    Hoshinokozo
        75
    Hoshinokozo  
       2020-12-22 09:54:15 +08:00
    我觉得主要还是兼容性考虑吧,百度这种国民级的搜索工具肯定是要考虑到各种用户情况和浏览器类型的,vue 不支持 IE9,不要觉得现在没人用 IE 了,毕竟全中国十亿级别的网民,啥情况都有可能。
    yanghuaqiang
        76
    yanghuaqiang  
       2020-12-22 09:55:35 +08:00
    忙着写广告呢 哪有时间搞这些[:\dog]
    RJH
        77
    RJH  
       2020-12-22 09:57:01 +08:00
    重构的活吃力不讨好啊,改错了是你的问题,改完之后没有明显的性能提高或者用户量增加也是你的锅。这么苦逼的活,我搞其他新项目赚点 KPI 不香吗?
    a719114136
        78
    a719114136  
       2020-12-22 09:59:01 +08:00 via Android
    jq 并不比 vue 或者其他框架 low
    bk201
        79
    bk201  
       2020-12-22 09:59:56 +08:00
    换个框架就叫重构?
    simo
        80
    simo  
       2020-12-22 10:11:06 +08:00
    一个技术方案的选择,会有很多非技术因素的影响,比如团队背景,工期要求,成本控制,历史性原因等等等等,技术因素也有很多,归结一句话,只有适合自己的才是最好的。
    qzhai
        81
    qzhai  
    OP
       2020-12-22 10:14:23 +08:00
    @ericls 这可是百度,怎么会没有需求
    MiBAO
        82
    MiBAO  
       2020-12-22 10:19:01 +08:00
    不是 国内真的有人在乎你用的什么框架写出来了什么东西吗,资本永远只在乎你这个东西有没有赚到钱。至于技术 听听就好。
    casillasyi
        83
    casillasyi  
       2020-12-22 10:19:59 +08:00
    jQuery 有什么不好吗
    areless
        84
    areless  
       2020-12-22 10:36:05 +08:00 via Android
    关注点不同。以前很多公司也拉着百度进前端娱乐圈。出过一个叫 lavas 的框架。后来停更了。就在去年还是前年,百度的 LOGO 还是白底的,因为 IE4 不支持透明背景色。强制用 vue bug 大增,访问量减好几个百分点
    zoeliu
        85
    zoeliu  
       2020-12-22 10:54:22 +08:00 via Android
    前段时间面试被问过这个问题,答的并不好。过来看看大家的想法。
    aliveyang
        86
    aliveyang  
       2020-12-22 10:56:38 +08:00
    国内没追求, 国人完全被资本绑架, 比资本主义还资本
    ericls
        87
    ericls  
       2020-12-22 11:25:47 +08:00
    @qzhai 你帮他们算过 ROI ?
    jsjgjbzhang
        88
    jsjgjbzhang  
       2020-12-22 11:27:43 +08:00
    技术的先进代表业务的先进么?
    wtzwutianzhi
        89
    wtzwutianzhi  
       2020-12-22 11:57:45 +08:00
    too yong to person
    qzhai
        90
    qzhai  
    OP
       2020-12-22 12:18:37 +08:00
    @wtzwutianzhi 你猜我看懂了么。。
    wangyzj
        91
    wangyzj  
       2020-12-22 12:58:39 +08:00
    naive
    suyuyu
        92
    suyuyu  
       2020-12-22 13:21:22 +08:00
    代码能跑就行
    weyou
        93
    weyou  
       2020-12-22 13:30:57 +08:00 via Android
    程序员什么时候入了时尚圈了?能用为什么要重构?嫌 bug 不够多吗?
    sockpuppet9527
        94
    sockpuppet9527  
       2020-12-22 13:35:48 +08:00
    17 年的微信事业部(应该是做企业微信的那帮人)还在用 eclipse 开发 android 。
    18 年我还看到有大公司在用 JCE 。
    今年 openssl 依然火爆。
    这还能说什么呢?
    xmx12138
        95
    xmx12138  
       2020-12-22 13:37:20 +08:00
    能用 且用的挺好 没必要改呀
    sockpuppet9527
        96
    sockpuppet9527  
       2020-12-22 13:38:19 +08:00
    歪个楼,让我想起了 17 年左右的事情,也是在 V2EX 看到的,讲一个年轻的技术负责人,用 JavaScript 写驱动,把我笑出声。 :)
    wanguorui123
        97
    wanguorui123  
       2020-12-22 13:43:00 +08:00
    主要是兼容性,也不想搞花样,能保证稳定就行了,也省成本。
    leonlu
        98
    leonlu  
       2020-12-22 14:13:05 +08:00 via iPhone
    你怎么还不买个车,宝马多好啊,方便又快,为什么还是骑自行车上班?
    嗯,是这么这个感觉。
    impl
        99
    impl  
       2020-12-22 15:14:30 +08:00
    百度和谷歌有可比性?
    52coder
        100
    52coder  
       2020-12-22 15:15:41 +08:00
    技术驱动型公司更愿意重构,其它公司赚钱才是王道,如果我是老板,我才不想你重构呢,去给我写业务赚钱去
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2641 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 15:58 · PVG 23:58 · LAX 08:58 · JFK 11:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.