• 请不要在回答技术问题时复制粘贴 AI 生成的内容
BruceLe
V2EX  ›  程序员

吐槽 5 年经验年薪 20W+前端同事写的屎山代码

  •  1
     
  •   BruceLe · Dec 16, 2020 · 32609 views
    This topic created in 2149 days ago, the information mentioned may be changed or developed.

    鄙人前端一枚,几个月前入职了一家传统行业公司,技术栈都比较陈旧,前端开发还是 jquery 手写 dom 的开发方式,我进来之后写的新项目都是使用 vue 写的,但不维护以前的代码。现在有个同事要离职了,就把他以前写的老项目都交给我维护了,我打开一看被这代码秀的一愣一楞的,细细看了之后头皮发麻,手写 dom 拼接 html,大量行内样式夹杂其中:

    20201216_1600_ 44.png 20201216_1601_ 46.png

    这位同事年薪 20W+,5 年经验,之前写的都是这种代码,没用过 vue 之类的新技术,nodejs 和 npm 环境还是我帮他装的,我进来之后也教了他一些 vue 的东西,后面在他在新写的 vue 项目中也负责了一些功能,我后来 build 项目的时候报了一个警告,说是有个文件超过了 500Kb,我打开他提交的文件一看,乖乖,一个 vue 文件他洋洋洒洒的写了一万多行,体积达到了 600 多 Kb,细看之后,我又被他的骚代码秀到了:

    20201216_1603_ 43.png

    写的什么玩意?这是对一个布尔值取反的操作,这老哥先判断值是真的还算假的,如果为真则改为假,如果为假则改为真。我寻思这不是 a=!a 一行代码就能搞定的事吗? 后面又随便翻了下,类似的代码出现了好多次。

    20201216_1604_ 50.png

    这同事的 5 年经验是实打实的 5 年经验,一年经验用 5 年的那种,他的技术你要说他烂我还有点想反驳,前面两张图那种代码你们猜他是用什么编辑器写的?你们绝对想不到,他是用 nodepad++写的,没有代码高亮,没有错误提示的 nodepadd++,用 nodepad++能写出这样的代码,我只能称之为神人。

    后面又随便翻了下,又翻出来类似这样的,嗯,这其实是一行代码:

    Image 1.png

    接手这样的代码是真的难受,今夜之后,这世界上又多了一个伤心的人。

    Supplement 1  ·  Dec 16, 2020
    有的 v 友可能误会我想表达的意思了,可能在有些 v 友眼里 20W 年薪不算什么,只能招到这样的人,我想表达的是他的技术达不到 5 年经验和这个薪资应有的水平,他实际薪资 25W+,月薪 2W 多,月薪 2W 只用过 jquery 而且写出这样的代码就有点离谱
    Supplement 2  ·  Dec 17, 2020
    leader 已经决定给我时间重构了,不过我不会看他的 shit 代码逻辑,看的脑壳疼,只能靠逆向重写一遍了,我的简历以后会添加这样一条经历,重构过一个 1W 多行的祖传屎山项目。
    那些说风凉话的人,我祝你们也接手这样的代码,与这样的人做同事。引用一句 v 友的话:就这种人 v2 还有一堆人为他辩护,可见码农这个行业已经堕落到何种程度了
    290 replies  •  2021-01-27 10:03:20 +08:00
    1  2  3  
    ❮ ❯
    tikazyq
    tikazyq
    Dec 17, 2020
    201
    可能是用脚手架工具编译过后生成的
    fengmumu
    fengmumu
    Dec 17, 2020
    202
    @Hoshinokozo 所以有时候看到有人一说代码行数多就说是屎山 我就。。。
    BruceLe
    BruceLe
    OP
    Dec 17, 2020
    203
    @mrkirkzheng #200 我也懵逼啊,刚才闲着搜了下,那个一万多行的文件里出现了 1500 多个 if
    a4854857
    a4854857
    Dec 17, 2020
    204
    很厉害.写出了只有他一个人能维护的代码
    zypy333
    zypy333
    Dec 17, 2020
    205
    我也接手过屎山,06 年开始写的项目,但是我没重构,感觉如果是局部小范围,还能重构,但是有些屎山,是一开始的架构有问题,重构不如推翻重写
    crazytudou
    crazytudou
    Dec 17, 2020
    206
    人生百态
    aloyuu
    aloyuu
    Dec 17, 2020 via Android❤️5
    207
    虽然我离职了,但是你也不用这么在背后用屎山形容我的代码,20 万年薪怎么了,老板觉得我值这个身价
    sanqian
    sanqian
    Dec 17, 2020
    208
    只要代码不是自己维护 谁关心他怎么写 哈哈哈
    SomeoneElseChild
    SomeoneElseChild
    Dec 17, 2020
    209
    @muzuiget 赞同.这玩意不就是在屎山上继续拉屎就可以了么?
    zhengjieliu1
    zhengjieliu1
    Dec 17, 2020
    210
    高手。
    susan0007
    susan0007
    Dec 17, 2020
    211
    这种情况很难理解吗?你都说了传统行业,那就是非互联网行业。有可能人家刚毕业就去了这家公司,有没有人带,没人交流,五年之后和行业脱节了而已,跳出去就好了。
    yaphets666
    yaphets666
    Dec 17, 2020
    212
    重构这些代码没意义 都是业务
    niguyi
    niguyi
    Dec 17, 2020
    213
    我寻思码农这个职业 也没有高尚过啊。。。。和快递外卖销售都是一样一种工作而已
    justjy
    justjy
    Dec 17, 2020
    214
    同情一下楼主,但不建议重构。

    重构能产生了什么额外商业价值?无非是自己觉得「代码可读可维护」了,后面接手代码的人如果水平不如楼主,又会进入恶性循环。
    hevi
    hevi
    Dec 17, 2020
    215
    我当年也接触过这样的代码( jsp ),让我接手的话,只有两条路。
    1. 重构(前后分离,我只写前,后怎么屎我都不理)
    2. 我跑路
    sarices
    sarices
    Dec 17, 2020
    216
    @wwk 同意你的观点
    IsaacYoung
    IsaacYoung
    Dec 17, 2020
    217
    哎 屎山拉屎呗
    nicebird
    nicebird
    Dec 17, 2020
    218
    牛逼
    freeminder
    freeminder
    Dec 17, 2020
    219
    @weifan 这么一看堆的屎山是志在栽棵大树呢
    l00t
    l00t
    Dec 17, 2020
    220
    @BruceLe #118 老板给他钱又不是因为他代码写得怎么样,是因为他的代码能实现功能,满足业务要求。代码写得再屎,那也是维护者的事,老板需要自己看吗?
    freeminder
    freeminder
    Dec 17, 2020
    221
    @BruceLe 368 行 res 是 null 看来会报错呀;如果 res 不可能是空,364 给的暗示又不对?
    l00t
    l00t
    Dec 17, 2020
    222
    @lights #171 没技术那一行都写不出来。能写出可以实现业务的代码了,那是技术够用的状态了。
    key1088
    key1088
    Dec 17, 2020
    223
    感觉在讨论砌墙的活
    wqgogogo
    wqgogogo
    Dec 17, 2020
    224
    惊得我去看了下有没有写这种的代码,不过我后端一枚,有时也要写 JS
    howoldareyou2
    howoldareyou2
    Dec 17, 2020
    225
    怎么了,他用汇编语言写,我更佩服他-->
    xiaomu8
    xiaomu8
    Dec 17, 2020
    226
    @aloyuu 我去,这是正主现身了?
    Francost
    Francost
    Dec 17, 2020
    227
    "月薪 2W 只用过 jquery 而且写出这样的代码就有点离谱",一句话里充满了酸和鄙视,只用过 jquery,并且写了一手屎代码,居然都值 2w 。。。
    Valii
    Valii
    Dec 17, 2020
    228
    为前同事辩护的怕不是自己就是这个水平
    Kirsk
    Kirsk
    Dec 17, 2020 via Android
    229
    风气就是这样 你把你重写的贴上来 搬砖工就没话说
    xiaoxinshiwo
    xiaoxinshiwo
    Dec 17, 2020
    230
    这就是代沟,远古程序猿都这么写
    nanxiaobei
    nanxiaobei
    Dec 17, 2020
    231
    怎么岗,我还以为是 5 年 200w+ 呢。。。
    melvin
    melvin
    Dec 17, 2020
    232
    老板说: 代码啥的不重要 重要的功能好用就行了 [doge]
    rbq123456
    rbq123456
    Dec 17, 2020
    233
    @zhang77555 程序员的薪资不和代码挂钩,应该和什么挂钩呢?业务,那不是产品的事情么?
    lovelive1024
    lovelive1024
    Dec 17, 2020
    234
    这算啥,我还见过 jsp 里面 java 和 html 代码混合编写的
    Reapper
    Reapper
    Dec 17, 2020
    235
    要不用 jquery 重构一遍?
    leeho
    leeho
    Dec 17, 2020
    236
    厉害, 不用 code review 的么?
    mark4zhao
    mark4zhao
    Dec 17, 2020
    237
    Describition 。。。
    yuyu2140
    yuyu2140
    Dec 17, 2020
    238
    哈哈哈,我司祖传烂代码( 10 多年前的代码,缝缝补补),时至今日每年还能贡献几百甚至上千万的收入,你信吗?
    插一句,码农也是个普通职业,辩护也不是堕落,烂代码谁都接手过,每个人都有写过烂代码的时期,希望能平常心看待这样的问题,经历的多了,就见怪不怪了
    cirzear
    cirzear
    Dec 17, 2020
    239
    tql
    chungon
    chungon
    Dec 17, 2020
    240
    这种屎一样的代码为什么会有这么多人洗?
    duanzhihe
    duanzhihe
    Dec 17, 2020
    241
    老项目,尤其是 3 、5 年以前的项目代码烂其实很常见,原因有可能是技术更新迭代+维护的人水平参差不齐+业务胡乱改来改去等等原因……
    这个哥们后面写的代码的脑回路的确可以看出水平不高,估计就是没有跟上时代……
    zhuweiyou
    zhuweiyou
    Dec 17, 2020❤️1
    242
    建议先搞清楚情况再说吧,有可能这个代码也是前人留下的.
    我也经常维护跟你截图差不多的代码,但是是别人写的啊.
    重构是不可能重构的,1.逻辑复杂,2.没有工期.
    huichao
    huichao
    Dec 17, 2020
    243
    读别人的代码是最难受的
    zhang77555
    zhang77555
    Dec 17, 2020
    244
    @rbq123456 薪资来源于你代码跑起来后运行的业务所创造的价值,
    如果另一个人写了比你更垃圾的代码,但是它承载的业务比你的更值钱,那么从出资方来看,另一个程序员应该拿到比你更多的钱.
    薪资和代码质量挂钩是个没法实际操作的事情,比如说从 code review 做起, 那么我猜最终的执行结果就是:只要发现你的代码中有不合公司规范或者效率不够极致的地方,就从你的"代码绩效"中扣钱,而写的好则成了你本身的职责. 我觉得这不是大家希望看到的
    djoiwhud
    djoiwhud
    Dec 17, 2020❤️1
    245
    为啥新入职的员工动不动就重构呢?

    这代码明明还可以维护。

    Vue 重写 jq 的项目,对当前而言可读性是要好很多,注意,仅仅是当前而言。再过三年,没有培训机构培训 Vue 了,换了一个 euV 框架,前端都用 euV,估计你用 Vue 写的代码是一样的被吐槽。我不信这么老的项目还有高频更新。如果不怎么更新了,重构的意义何在?

    在我这里,提出要重构这个项目,仅仅是因为看着不爽,一定会被叼一顿。你以为你领导是看这代码不爽同意你重构,他可能仅仅是看到你没啥事情可做,让你保持工作状态罢了。

    如果微软 Windows 组和 office 组的员工都像这样热衷重构垃圾代码,那不可能做成项目了。
    menghui9898
    menghui9898
    Dec 17, 2020
    246
    > 他是用 nodepad++写的,没有代码高亮,没有错误提示的 nodepadd++,用 nodepad++能写出这样的代码,我只能称之为神人。

    看到这句实在没忍住笑喷了
    lambdafate
    lambdafate
    Dec 17, 2020
    247
    毫不夸张的说, 我一个后端写的比他好 100 倍, 狗头保命.jpg
    96412hj
    96412hj
    Dec 17, 2020
    248
    @menghui9898 #246 那用 txt 写 java 的呢。。。。
    meiyoumingzi6
    meiyoumingzi6
    Dec 17, 2020 via iPhone
    249
    不记得在哪看到的了,意思是线上的代码哪怕就是一坨,他也是比你重构的代码有意义的,因为它在线上已经跑了很久了


    后来我也就很少喷代码写的烂了,
    另外就是这样直接把代码截出来总归不太好吧
    x86
    x86
    Dec 17, 2020 via iPhone
    250
    想起之前的同事,刚进公司不久就吐槽一个很老的项目这不行吐槽那不行,给他时间重写就哑巴了
    lovecy
    lovecy
    Dec 17, 2020❤️1
    251
    @LxExExl 你手上几个新需求还没实现,焦头烂额的时候,老功能出了 BUG 要你修,这时候你也会 shi 山拉 shi,然后跟同事说一句,“又不是不能用”
    kevinwan
    kevinwan
    Dec 17, 2020 via iPhone
    252
    我们前端 api 调用代码自动生成的,而且生成工具已开源,可定制生成任意客户端代码
    https://github.com/tal-tech/go-zero
    kalluwa
    kalluwa
    Dec 17, 2020❤️1
    253
    对所有的程序员抱有敬意,没啥屎山不屎山的,都是打工人,
    是山不是山,是水不是水,看山不是山,看水不是水。
    祝你好运
    zhlssg
    zhlssg
    Dec 17, 2020❤️1
    254
    我看楼里不少给写代码这老哥洗地的,说实话能写出这代码我觉得最多就值 6k 一个月,不能再多了,拿 25w 一年,是对公司其他前端工程师的侮辱
    netnr
    netnr
    Dec 17, 2020 via Android
    255
    有必要学习 《程序员的自我修养》 ^O^
    royzxq
    royzxq
    Dec 17, 2020
    256
    这能跑起来我还是得说一句🐂🍺的。。。

    另外,跑路吧
    yungo8
    yungo8
    Dec 17, 2020 via Android
    257
    @ily433664 最开始的 jsp 就是写 java 和 html 混合的呀
    c2const
    c2const
    Dec 17, 2020
    258
    0.这哥们要么是增加自己的不可替代性,要么他也是接的前人的代码。
    1.可能用了混淆工具,如果正规,有版本控制,去看看提交记录,当然也可能被 TA 删了。
    2.远古时期的程序员也差不多,不过当时是因为技术够深+几十万行汇编太反人类;现在的业务代码是业务逻辑经常变而且太复杂。
    3.打工者而已,面向工位编程。我现在写的代码不多,每个文件内嵌了几万行代码,编译一小时起步,和业务深度耦合,不按照我的小笔记改不了...
    IssacTomatoTan
    IssacTomatoTan
    Dec 17, 2020 via Android
    259
    不重构 只在后面追加 但是追加的地方可以优化就优化 你现在写的代码 以后也是被人鄙视的
    dioxide
    dioxide
    Dec 17, 2020
    260
    自带代码混淆 😄
    woshijidan
    woshijidan
    Dec 17, 2020 via Android
    261
    可能不是他写的
    henvm
    henvm
    Dec 17, 2020 via Android
    262
    @Desiree 如果他这个同事年薪只有 7 万左右,这公司抠门的很,从不涨什么工资。只是走的时候故意告诉他我这么虚高工资,可能提醒楼主千万不要,要低了身价。
    henvm
    henvm
    Dec 17, 2020 via Android
    263
    @zhlssg 除非在那种不发达的小县城,如果在一,二线城市 6K 招聘想都不用想,现在时代变了,高物价,房价。如果还 996 点话熬出病了,看个病就半个月工资没了。得不偿失。我还是觉得中国与欧美,日本,新加坡整体薪资比较是偏低,低的不是一点点,要不然为什么那么多厉害的人往外跑。
    RayDG
    RayDG
    Dec 17, 2020
    264
    我怎么突然乐观起来了 可怕
    henvm
    henvm
    Dec 17, 2020 via Android
    265
    @anxiousPumpkin 没有为他辩护吧,只是劝楼主不要去重构吃力不讨好,另外重点是楼主估计谈工资低了,心里不平衡,还是太年轻。如果楼主写的代码很厉害完全可以要价 100 万年薪。现在时代变了
    justfindu
    justfindu
    Dec 17, 2020
    266
    不说这些了 , 最近我们系统一个模块外包出去的, 使用 laravel , 说起来应该还有个框架约束, 结果代码就是远古时代的风格
    henvm
    henvm
    Dec 17, 2020 via Android❤️1
    267
    @RayDG 是啊为什么 996 会在 it 行业普遍发生,其实就是中国的 it 从业人员太老实,太嫩了。现在做上门搞点工的工人,干一天随随便便 300+块。上次请人通马桶就是 1 个小时的事情 200 多块,但是自己没工具,嫌脏。我都想做点工。
    henvm
    henvm
    Dec 17, 2020 via Android
    268
    @justfindu 哈哈,你还想怎么样,外包工资低属于层层克扣。能运行起来就行。要不然就不要外包了,老板也不傻,外包降低成本。
    ylqhust
    ylqhust
    Dec 17, 2020
    269
    不建议重构,也不建议跑路。能在屎上做业务也是一种能力。
    cmostuor
    cmostuor
    Dec 17, 2020
    270
    @Francost 公司给什么样的工资这和买卖一样 能把垃圾卖高价那是本事
    cmostuor
    cmostuor
    Dec 17, 2020
    271
    @zhlssg 现在的本科毕业生 白菜价收都要 15-25k 了 6k 你确定能招得到人? 要是我宁愿闲着发呆也不去 6k
    一个月 流水线工人努力加班都能达到这个价 干的不过是些无脑的体力活 程序员这行除了脑力还是体力的活 要想能胜任这项工作 计算机系的得花 3 年时间读大学 非计算机的的话四、五万学费去培训四个月才可以出来还不过只是会些简单技能的小白而已
    henvm
    henvm
    Dec 17, 2020 via Android
    272
    @cmostuor 我老家 5 线小县城。现在进工厂最低工资 4000 包吃住了,加班工资另算。不要学历和技能树限制。
    wlgq2
    wlgq2
    Dec 17, 2020❤️1
    273
    你伤害了很多辣鸡程序员的自尊心。
    bbao
    bbao
    Dec 17, 2020
    274
    [leader 已经决定给我时间重构了,不过我不会看他的 shit 代码逻辑,看的脑壳疼]

    兄弟,如果你的 leader 看到你后面 [不过我不会看他的 shit 代码逻辑] 这句话,他一定会说「我刚才说什么,不你不要动代码。」
    BruceLe
    BruceLe
    OP
    Dec 17, 2020
    275
    @aloyuu #207 你搁这装当事人给我唬得一愣一楞的
    CommandZi
    CommandZi
    Dec 17, 2020
    276
    酸了,我想转前端~
    echowuhao
    echowuhao
    Dec 17, 2020❤️1
    277
    吐槽人家代码可以。工资这个事情就算了。

    人家拿这个钱就有这个能力,跟代码无关。

    说回代码,代码这东西,批评人家容易。

    问题是你没有当初的环境,仅仅说代码如何如何没啥意义。
    weakish
    weakish
    Dec 17, 2020
    278
    > 他是用 nodepad++写的,没有代码高亮,没有错误提示的 nodepadd++

    不要这样黑 notepad++ 啊,notepad++ 也是有 JSLint 插件的(当然要安装一下),语法高亮更是默认就自带的啊
    HerrDu
    HerrDu
    Dec 17, 2020
    279
    看了代码之后,觉的除了对 vue 和 webpack 了解的少之外,代码格式、命名 、逻辑应该没又大问题。
    rbq123456
    rbq123456
    Dec 18, 2020
    280
    @zhang77555 ?你说错了吧,程序员的薪资不与代码质量挂钩,难道跟业务挂钩?业务挣不挣钱,并不是程序员能控制的,而代码质量是自己能控制的,你要把你的绩效交给业务来决定?而业务挣钱如何,是由业务本身和运营来决定的,换句话说,你觉得大家是希望把绩效交给运营来决定?另外,在大公司,你管着的只有一亩三分地,用什么来衡量一个程序员的薪资水平,不以代码以什么?
    WaldenHorizon
    WaldenHorizon
    Dec 18, 2020
    281
    var that = this;
    想起抖 Y 一个段子,蓝骑士送达外卖后指着屏幕对开发小哥说,这里加个 that,让它等于 this,然后下面就有权限访问了
    该不会。。。[doge]
    demoslam
    demoslam
    Dec 18, 2020
    282
    notepad++也有语法高亮 也能装插件啊
    BruceLe
    BruceLe
    OP
    Dec 18, 2020
    283
    @weakish #278
    @demoslam #282 不是黑 nodepad++,有次他让我帮他调 bug,我看到他用的就是白底黑字的那种
    zhangjiafan
    zhangjiafan
    Dec 18, 2020❤️1
    284
    别的不知道,但是这种代码,应该是有工具代码生成器自动生成,我自己的屎山就是很多自动生成的代码,或者直接复制粘贴,没有考虑过复用的代码。业务逻辑一天天的在催,前一秒的功能,下一秒问你改好了没有。我没有那么多时间去考虑复用,也不会去研究内存消耗,更不会去关心代码行数,百度一下复制粘贴。能 ifelse 复制下来的,绝不会考虑与或 且的逻辑符号。每次想去重构,但是几个项目就一个人维护,重构意味着不仅新需求被催着写,还得学习新技术来重构。vue2.0 写习惯了,来了个新人用 vue3,0 的,结果来嘲笑你写的 vue2.0 代码量太多, 其实没多大必要。曾经我也是那个意气风发的严谨高技术水平的程序员。现在我只是能实现业务的搬砖工。现实会把理想吊打的服服帖帖的。看完你的帖子有感而发。
    fishenal
    fishenal
    Dec 18, 2020
    285
    感觉是系统生成的,他是不是用了什么黑科技,手写一万行代码基本不可能,还是用 notepad++
    ncepuzs
    ncepuzs
    Dec 19, 2020
    286
    什么叫无可取代啊,这就叫(战术后仰
    weakish
    weakish
    Dec 20, 2020
    287
    @rbq123456 许多公司的奖金很大程度上是和业务挂钩的,项目大火和项目黄了拿到的奖金天上地下。去哪个组某种程度上也可以看成是内部的应聘或者跳槽,考验判断力和运气(就像代码质量相当的人在不同公司的薪资可能差异很大一样)。
    weakish
    weakish
    Dec 20, 2020
    288
    @BruceLe 那真是神人了……(神人说:(设计台词)我是不会用语法高亮的,用惯了语法高亮,万一将来要换单色墨水屏怎么办)
    leekafai
    leekafai
    Dec 21, 2020
    289
    哇原来真的是人均 20w 起步,我看到有评论说 20w 年薪校招起步了,惊了
    PoetAndPoem
    PoetAndPoem
    Jan 27, 2021
    290
    @zzm88104 DOM 吗
    1  2  3  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4442 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 209ms · UTC 03:55 · PVG 11:55 · LAX 19:55 · JFK 22:55
    ♥ Do have faith in what you're doing.