吐槽 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++能写出这样的代码,我只能称之为神人。

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

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

27902 次点击
所在节点    程序员
290 条回复
bzw875
2020-12-17 14:07:08 +08:00
要我接手这种代码,要么我打他一顿,要么离职。他就是一个被学习不了新技术和框架,被时代抛弃的人,活在 jquery 时代。觉得他可恨又可怜
manwei6341
2020-12-17 14:08:38 +08:00
很有可能是机器生成的。
towry
2020-12-17 14:09:19 +08:00
感觉你们的老板有点萌,有点可爱。
sevenzhou1218
2020-12-17 14:12:03 +08:00
前端浮躁名不虚传。我今天看昨天的代码也觉得是一坨屎。另外,你咋不想想为什么你能和这种人做同事呢?
Hoshinokozo
2020-12-17 14:14:07 +08:00
@fengmumu 合不合理要结合实际情况,一般来说是根据功能点拆分,但是如果一个功能点代码太长也是可以拆的,例如一个长表单也是可以拆成几个子表单的,拆分后的组件当然也需要来回看,但是看一个几千行的组件和看多个几百喊得组件,后者体验要好得多。
johnnyNg
2020-12-17 14:14:50 +08:00
楼主,我给你说个更气的,他离职了,意味这他现在新工作薪资至少是 30w 的水平了
durban126
2020-12-17 14:16:34 +08:00
你这文章写的,够好多人批你的了
要考虑现实
现实就是老板要的是能用,具体谁来维护老板不关心
就算这个代码烂,说实话,没觉得烂,反而看着清晰易懂
只是大家写代码的风格不同罢了,如果你们公司就这一个开发的话,能写 5 年而且效率和产出都比你用 vue 牛的话我觉得这也是能力比较强的,没有什么烂不烂的
CodeCodeStudy
2020-12-17 14:22:48 +08:00
行数够多的,绩效考核肯定不错
ervqq
2020-12-17 14:24:23 +08:00
我司 7000 多行的业务统计逻辑写在数据库存储过程的,但是一直在用没有出任何问题,所以我就算看到都不会碰佢,整理个计算流程图出来就算了
SHENGXINKAI
2020-12-17 14:24:50 +08:00
这就叫水平;
RJH
2020-12-17 14:26:07 +08:00
能力不一定会与薪酬挂钩,薪酬的核心评估还是当初的面试表现+年度述职怎么吹自己干的活(反正领导不会检查代码,只要功能不出错就可以了)
tangtaorong
2020-12-17 14:27:31 +08:00
当有个要命的外包客户和老板在催你交货的时候,低成本的代码只要几个个小时;严谨合理、有前瞻的代码需要几天。客户也不懂代码,老板也不懂代码,你会选择哪种方式?
LewisW
2020-12-17 14:29:00 +08:00
还是太年轻 多干几年你根本就不会去 care 这种事了。。
wanguorui123
2020-12-17 14:36:29 +08:00
一篇 SQL,函数名比一句话还长,变量名 a1.a2,a3,这些我都见过
fengmumu
2020-12-17 14:37:29 +08:00
@Hoshinokozo 前面同意,后面不是很同意,算是每个人不同的看法吧,比如一个长表单拆分成多个子表单,当时的业务是表单之间相互不关联,每个子表单自治,然后后面某几个之间有依赖关系,这时候改起来就很难受了,甚至要重写就算不重写 也是各种传递和引用,还不如一直写在一起呢,
小声逼逼: 不认为拆分成多个小文件是很好的事情,如果是做一个抽象的功能,把功能点拆分,然后引用比较合理,如果和业务挂钩,早早拆分,不但不利于后面人的维护也不是利于后面功能扩展(你只能给你预见到的功能留口子,但是你架不住产品提骚需求啊)。所以我总觉得和业务相关的少做优化,拆分的话尽可能的少,一切以后面人可以方便理解维护为主,代码的优雅处于第二位
Desiree
2020-12-17 14:38:11 +08:00
主要是,你怎么会知道同事的工资的,职场大忌啊....
fengmumu
2020-12-17 14:39:53 +08:00
@fengmumu 少优化不是向图片一样 一个取反就可以的 非要写个判断 啊
KuroNekoFan
2020-12-17 14:40:43 +08:00
@tangtaorong 写出这种代码的人时间充裕了也不会去优化 /拆分的,因为 1.一开始就没有进行适当代码划分的想法,2.代码堆到这个长度,优化成本已经很高
BruceLe
2020-12-17 14:40:55 +08:00
@johnnyNg #146 他要是还写这种代码,估计新公司试用期都过不了
zooeymango
2020-12-17 14:54:42 +08:00
我咋看不见图啊,让我也康康,说实话如果不是有良好习惯不断学习和重构,前端项目就是很容易变成屎山,因为总会碰上要求快速出活不考虑其他的时候,可能你的前同事就是这种迅速堆积代码不愿意花时间重构的人,当然就是苦了你了,心疼你

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

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

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

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

© 2021 V2EX