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

2020-12-16 20:36:30 +08:00
 BruceLe

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

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

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

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

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

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

27932 次点击
所在节点    程序员
290 条回复
duanzhihe
2020-12-17 18:21:35 +08:00
老项目,尤其是 3 、5 年以前的项目代码烂其实很常见,原因有可能是技术更新迭代+维护的人水平参差不齐+业务胡乱改来改去等等原因……
这个哥们后面写的代码的脑回路的确可以看出水平不高,估计就是没有跟上时代……
zhuweiyou
2020-12-17 18:22:34 +08:00
建议先搞清楚情况再说吧,有可能这个代码也是前人留下的.
我也经常维护跟你截图差不多的代码,但是是别人写的啊.
重构是不可能重构的,1.逻辑复杂,2.没有工期.
huichao
2020-12-17 18:25:17 +08:00
读别人的代码是最难受的
zhang77555
2020-12-17 18:25:20 +08:00
@rbq123456 薪资来源于你代码跑起来后运行的业务所创造的价值,
如果另一个人写了比你更垃圾的代码,但是它承载的业务比你的更值钱,那么从出资方来看,另一个程序员应该拿到比你更多的钱.
薪资和代码质量挂钩是个没法实际操作的事情,比如说从 code review 做起, 那么我猜最终的执行结果就是:只要发现你的代码中有不合公司规范或者效率不够极致的地方,就从你的"代码绩效"中扣钱,而写的好则成了你本身的职责. 我觉得这不是大家希望看到的
djoiwhud
2020-12-17 18:25:30 +08:00
为啥新入职的员工动不动就重构呢?

这代码明明还可以维护。

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

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

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

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


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

另外,跑路吧
yeqizhang
2020-12-17 19:25:45 +08:00
@ily433664 最开始的 jsp 就是写 java 和 html 混合的呀
c2const
2020-12-17 19:31:28 +08:00
0.这哥们要么是增加自己的不可替代性,要么他也是接的前人的代码。
1.可能用了混淆工具,如果正规,有版本控制,去看看提交记录,当然也可能被 TA 删了。
2.远古时期的程序员也差不多,不过当时是因为技术够深+几十万行汇编太反人类;现在的业务代码是业务逻辑经常变而且太复杂。
3.打工者而已,面向工位编程。我现在写的代码不多,每个文件内嵌了几万行代码,编译一小时起步,和业务深度耦合,不按照我的小笔记改不了...
IssacTomatoTan
2020-12-17 19:36:19 +08:00
不重构 只在后面追加 但是追加的地方可以优化就优化 你现在写的代码 以后也是被人鄙视的
dioxide
2020-12-17 19:42:19 +08:00
自带代码混淆 😄

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/736148

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX