本月入职了一家新公司,看到项目的代码,我眼前一黑
(至于其他的,比如中文做 key 名,一堆 if-else 不优化等等槽点太多的,就不贴了)
(看了眼 git 提交记录,这段代码是前端组长一个人写的,并且是 Layout 中的代码,并非业务组件代码)
如果放在三四年前,我可能会找前端组长讨论下重构的必要性(这个项目刚开始,不存在太多历史包袱)。
但是现在 OP 已经三十岁了,坦率地讲对代码,尤其是前端代码的热情已经大不如前,丝毫不想碰原来的代码。只想着自己的代码写的稍微整洁一点,能不在自己的代码上拉太多的就好。
PS 从我入职两个多礼拜的观察来看,工作目前看来也不怎么饱和,一个静态页面两个人安排了四天时间,和我一同进来的前端老哥已经闲到在自学 Java 了。
虽然入职的时候被 HR 压了薪资,比之前的工资低了 20%,但是想了想现在的工作状态,觉得还算满意,钱多事少离家近目前看来已经占了后面两样,多点时间带薪学习、陪陪老婆孩子倒也挺好。
现在让我焦虑的可能是工作状态太过于轻松,有点担心会不会某天被裁员……
![]() | 1 insanny 2023-06-25 14:23:00 +08:00 ![]() 截图里面的代码都有哪些不合规的地方,vue 新手虚心请教一下 |
![]() | 2 silk 2023-06-25 14:26:55 +08:00 升级遗留问题 或者 2.7 版本什么的。反正能用就行,主打的就是一个性价比 |
![]() | 3 taro0822 OP @insanny compesition 和 options 写法混用,虽然可以这么写,但是看起来非常“不高级”,并且代码中没有任何地方是依赖于某一种特定写法的 |
6 sakae010 2023-06-25 14:39:12 +08:00 什么主题 |
7 tempw 2023-06-25 14:39:55 +08:00 想问下薪资范围多少 |
![]() | 8 amon 2023-06-25 14:42:57 +08:00 ![]() 一个很残酷的事实:代码绝大多数场景下都是能用就行。 关于程序员的核心竞争力,你再品品。 |
9 Xi 2023-06-25 14:46:03 +08:00 ![]() 虽然工资不高,但是感觉你进对了公司 |
10 brader 2023-06-25 14:46:57 +08:00 这种问题,见多了就好了 |
![]() | 11 MRG0 2023-06-25 14:52:36 +08:00 setup 写<script>里的写法最爽 |
![]() | 12 NGXDLK 2023-06-25 14:54:35 +08:00 ![]() 遗留代码,除非有把握,否则还是别动。 而且就像 8 楼说的,中国的大部分公司的业务代码随便写写就行,垃圾代码多也就顺理成章。 |
![]() | 13 Daniel17 2023-06-25 14:59:15 +08:00 屎山如果不去碰,其实还行,但可怕的是你得在上面修改或者迁移 |
![]() | 14 Hilong 2023-06-25 14:59:16 +08:00 现在我们都是 script setup 这种了. 写起来最舒服,不用写一堆的 options |
![]() | 15 hnhhm2009 2023-06-25 14:59:56 +08:00 好奇位置和薪资 |
16 beijinglowb 2023-06-25 15:14:12 +08:00 ![]() 钱多事少的代码就是好代码 |
![]() | 17 8355 2023-06-25 15:25:58 +08:00 现在让我焦虑的可能是工作状态太过于轻松,有点担心会不会某天被裁员…… 你现在学 Java 不就是连演都不演了?让 hr 知道下一个就是你 |
18 0n2ynu 2023-06-25 15:26:39 +08:00 跟楼主基本一致. 拼音缩写的变量, 复制粘贴的函数, 一层套一层的 if else, 奇丑的审美. 但工作比较闲, 公司也正规. 所以暂时在屎山里畅泳 --! |
![]() | 19 milkv 2023-06-25 15:36:22 +08:00 ![]() 这代码怎么了,又不是不能跑 |
![]() | 22 israinbow 2023-06-25 15:39:39 +08:00 ![]() 老板: 你一定要把 "重构", "设计模式", "架构思想" 掌握好, 优秀的程序员写代码是艺术创造. 我: 粪海狂蛆.jpg |
![]() | 23 wu67 2023-06-25 15:41:59 +08:00 你这还好啦. 我这里有几十个页面, 子组件直接改了父组件传进来的引用类型值, 当我发现这堆奇怪代码能按业务正常跑时, 心脏都跳快了几下... |
![]() | 27 taro0822 OP @NGXDLK 感同身受,并不是每家公司都千万日活百万并发,各种管理后台数据大屏才是大多数公司的日常,代码相对而言,没有人重要。 |
![]() | 28 zhuisui 2023-06-25 15:51:13 +08:00 不能说是新项目就可以上 v3 ,还要考虑已有同事的编码习惯问题。 旧的语法写习惯了,换成新的也不容易。 |
29 ZGame 2023-06-25 15:53:25 +08:00 说到 if else 最近看到开源项目里函数式的处理方式,感觉有点溜。 export function isInRange(limit?: ChartDataConfig['limit'], count: number = 0) { return cond( [isEmpty, true], [isNumerical, curry(isNumericEqual)(count)], [isPairArray, curry(isInPairArrayRange)(count)], )(limit, true); } |
![]() | 30 taro0822 OP @zhuisui 考虑团队开发习惯我能理解,但是我觉得吧,这个写法是不是得统一起来?哪怕统一成 options 写法呢。我的槽点主要是这两者混用,维护起来心智负担稍微高了一点…… |
31 hackerdom 2023-06-25 16:22:44 +08:00 发给 chatgpt 让他来优化一下这种代码结构 |
![]() | 32 FakerLeung 2023-06-25 16:23:26 +08:00 @taro0822 #20 webstorm 有吗?好像搜不到 |
![]() | 33 lichdkimba 2023-06-25 16:28:12 +08:00 ![]() 这不就是 options 的写法吗…… |
![]() | 34 stkstkss 2023-06-25 16:29:56 +08:00 via iPhone 不用管 在这家公司躺平就行 |
35 QlanQ 2023-06-25 16:36:24 +08:00 说说我吧,刚到这个新公司,来之前 技术部负责人说,他们有个 PHP 的项目,是找自己的朋友做的,试了试感觉可以做,现在想自己做 然后我来了之后看了代码,就一个开源框架改的,框架还不更新了,然后他们直接在 vendor 里面改了,然后就是那代码我是看不下去了,项目没有上线的那种,然后我加班加点 用 1 个月时间重构了整个后端和后端的管理端 前端的页面重新对接接口 就这刚弄完,又接手了一个项目,yii 1.1 ,同样的烂,我已经不想在这公司待了,写这代码的人还觉得自己厉害的不行 本着,对方的代码写的不咋样,可能在其他地方很厉害的呢,我就没敢怼 真的是 low 就不说了,也不知道是自己不自知还是不承认,拽的跟 2 、5 、8w 似的 这里说的代码不行,就不说设计模式那种争议性的东西了 打开代码,ide 报一堆错,各种 n+1 ,各种变量为定义 表设计,中间表冗余数据,直接拿来用,也不知道修改信息的时候,中间表咋办 |
36 daokedao 2023-06-25 17:11:11 +08:00 本就是公司的螺丝钉,非要打造成艺术品 |
![]() | 37 cirzear 2023-06-25 17:26:08 +08:00 ![]() 代码跟人,有一个能跑就行 |
![]() | 40 wonderfulcxm 2023-06-25 18:05:57 +08:00 via iPhone 你说得对,我也释怀了。 |
![]() | 41 tkHello 2023-06-25 18:26:32 +08:00 代码没有喷点 |
![]() | 42 unicreators 2023-06-25 18:27:35 +08:00 你这还好了,我这的一个神队友,基础服务里给你插业务代码,还是 if..else 打补丁那种。 搞个多环境下的配置,明明可以多个配置文件打包时切就行,神友直接给塞一个配置文件里(环境前缀+键),在打包时给加了一个环境参数,程序运行时取到这个参数再去拼键找对应的值,所有用到配置的地方他都给改了一遍,看到那个 commit 我人傻了。。 |
![]() | 43 PungentSauce 2023-06-25 18:28:38 +08:00 ![]() 裁员的原因是公司不盈利,而不是你的忙与闲。 |
44 daliusu 2023-06-25 18:58:17 +08:00 你这代码不就是尤雨溪要的吗?给 vue3 留了那么大的两个 ts 的坑( props 和 emit ),就为了兼容这种写法,所以这么写有什么问题? |
![]() | 45 wusheng0 2023-06-25 19:13:53 +08:00 via Android @daliusu vue3 文档: > 你可以在一个选项式 API 的组件中通过 setup() 选项来使用组合式 API 。 然而,我们只推荐你在一个已经基于选项式 API 开发了很久、但又需要和基于组合式 API 的新代码或是第三方库整合的项目中这样做。 |
46 kungsun 2023-06-25 19:19:05 +08:00 @PungentSauce 盈利都好说,不盈利亲爹都给你裁掉 |
![]() | 47 busfool 2023-06-25 19:43:02 +08:00 这都不是咱需要考虑太多的问题 |
![]() | 48 cnrting 2023-06-25 19:45:29 +08:00 via iPhone 能挣钱的代码就是好代码 |
![]() | 49 Frankcox 2023-06-25 19:47:53 +08:00 @FakerLeung 应该只有 vscode 有 |
50 NoKey 2023-06-25 20:08:28 +08:00 一切,以负责人代码 review 合入为准 你说啥,没有 review ,测试过了就合入? 那管好自己就 ok 了 |
![]() | 52 gyt95 2023-06-25 23:19:37 +08:00 挺好的,有空还可以学一门后端语言,不论 Java 还是 Go 。前端未来是全栈。 |
![]() | 53 songray 2023-06-25 23:31:25 +08:00 @taro0822 粗糙的写法心智负担是不高的,炫技心智负担才高.... 例如,虽然是新开的项目,但团队大多数都是 vue2 并没有学习 vue3 ,平滑一些也是好的做法,script setup 或者是 lang=tsx 还有直接 defineComponent 然后用 tsx ,现在的 vue 就是很拧巴很乱.... 如果是那种比较低级的项目,又不是不能跑,如果是高级的项目,反正都要 hack ,还谈什么心智负担呢... 话说国内前端不管大小团队反正很少有 review.... 所以也没几家代码能称得上干净的。 |
54 anaf 2023-06-25 23:32:09 +08:00 图中不是 vue2 的语法吗 有什么问题吗 |
55 CoderLife 2023-06-25 23:39:32 +08:00 除非公司只有你一个开发.... |
![]() | 56 RRRSSS 2023-06-25 23:42:41 +08:00 你三十才有这想法啊 我刚工作一年的时候,就知道,代码能跑就好,重构什么,领导又看不见,有啥用。有时间自己学习,哪怕打打游戏都行 |
![]() | 57 Pastsong 2023-06-26 00:23:41 +08:00 程序员的核心竞争力不是你能够用最新最好的框架把老代码重构一遍 |
58 XueHan 2023-06-26 00:51:11 +08:00 工作久了就知道了,工作不是比技术多高级,而是是否能支撑业务稳定地运行,哪怕最垃圾的写法,只要能跑不出问题对老板而言就是好代码。 |
![]() | 59 tuomasi 2023-06-26 08:12:44 +08:00 现在还有心管别人代码整不整洁,还管 Vue 写的高不高端,30 岁了,不是小孩子了,给自己想条退路吧,别人写的一坨屎我都夸好,真棒 |
![]() | 60 ChenSino 2023-06-26 09:05:57 +08:00 哈哈“但是现在 OP 已经三十岁了,坦率地讲对代码,尤其是前端代码的热情已经大不如前,丝毫不想碰原来的代码。只想着自己的代码写的稍微整洁一点,能不在自己的代码上拉太多的就好。” 哈哈哈哈 很真实 |
61 wangerka 2023-06-26 09:26:54 +08:00 应该是原本用的 vue2 ,后来边学 vue3 边改了一版 |
![]() | 62 adgad2 2023-06-26 09:26:55 +08:00 +1 ,以前还想着重构,现在就是在屎山上继续拉屎,又不是不能用 清闲不加班有钱就行 |
![]() | 63 woshinide300yuan 2023-06-26 09:27:51 +08:00 当然是带薪学习和顾及家庭了,嘻嘻。 什么代码不代码的,什么屎山不屎山的,只有小屁孩才会较真那些东西。能跑就行,代码就是用来跑的,不是用来看的, 哈哈。 |
64 yjw239 2023-06-26 09:30:10 +08:00 还行,个人觉得 vue 本身的锅更大些 |
![]() | 65 jenhe 2023-06-26 09:31:22 +08:00 ![]() 鄙视前辈,理解前辈,成为前辈 ---引用 v 友 |
![]() | 67 lemon6 2023-06-26 09:40:44 +08:00 这段代码有啥问题吗。。 |
68 iloveayu 2023-06-26 09:41:34 +08:00 这代码能跑不(稳定别经常救火) 这代码跑起来给公司生钱不(能支持给你开工资) 如果都可以,那么,下一步: 优雅地避开原来的屎,继续拉新的华丽得屎 |
69 paopjian 2023-06-26 09:48:09 +08:00 vue2 新人甚至看不懂" compesition 和 options "是啥, 搜了一下原来是 vue3 和 vue2 语法混用, 果然还是知识不足了啊 |
70 iosqiao 2023-06-26 09:50:44 +08:00 外层代码看着结构还可以,敢不敢放出来详细的看看? |
71 istomyang 2023-06-26 09:51:04 +08:00 原则:能跑就行,做好新代码隔离。 |
![]() | 72 Terry05 2023-06-26 09:55:06 +08:00 历史代码能不碰就不碰,屎山代码总会有的,即使是认为自己是高度代码洁癖的人,隔一段时间回看自己的代码都会产生不适(当时我怎么想的,怎么就写成这鸟样了),新的模块,新项目,按照你自己觉得规范的方式来吧 |
73 kamilic 2023-06-26 10:22:47 +08:00 在业务优先时间优先的情况下,又没有专门的技术债修复时间,怎么可能没有屎山。 只能套用《重构》说过的一句话,让自己经过的地方变得更好就行了。 |
![]() | 74 lincanbin 2023-06-26 10:28:15 +08:00 能跑不要动 |
![]() | 75 Vegetable 2023-06-26 10:38:00 +08:00 vue 典型的千人千面, 缺乏最佳实践的指导. 我现在感觉组合式 API 在业务代码中及其容易失控, 下限是远低于 options 写法的. |
76 gadore 2023-06-26 11:22:57 +08:00 @Vegetable 你这显然是没有把 Vue3 推出的特性好好带到正式的项目中去实践。Vue3 解决了 Options Api 写法中最大的业务杂糅问题,通过 useHook 的写法各种业务可以相互隔离到各个不同的文件中去,让主体界面保持 UI 布局的简洁。是非常高明的设计,如果它没什么用,官方也不会推出的。 当然了,OP 发出来的这段 Vue2 混写 Vue3 的杂交就更是如此了,属于是:我学了,但好像又什么都没学。 部分大龄程序员在面对新技术的初期是这样的,包括我以及我的领导 |
![]() | 77 Vegetable 2023-06-26 11:32:50 +08:00 @gadore 这个设计确实很高明, 写法人容易学会, 但本身想用好这套东西需要的水平还是很高的. 而前端本身就缺乏统一的认识, 大家写出来的东西都不一样, 在一个文件里写完全部逻辑的大有人在 |
78 @Vegetable 这倒是,上下限都太宽了,导致平均水准参差不齐,最关键是,还有“又不是不能用”派别的存在,这就让那些好好注意工程性、易用性的人所做的工作显得非常多余,也就导致了更多的人摆烂。不过有能力的人更多地会用别的办法提升自己。终究是会有用武之地的。 |
80 uni 2023-06-26 12:54:16 +08:00 确实眼前一黑,不过习惯了也就算了 |
![]() | 81 wmz000 2023-06-26 13:12:09 +08:00 就我一个人看不见图么? |
![]() | 83 goonxh 2023-06-26 14:05:12 +08:00 hhhhh 我们一个写了五年的项目,中间从 vue2 升级到 vue3 ,现在一半 vue2 ,一半 vue3 ,想用什么写,就用什么写 |
![]() | 84 Natsuno 2023-06-26 14:07:47 +08:00 你一说合肥,我就理解了,正常现象(同合肥前端) |
![]() | 85 lingeo 2023-06-26 14:17:33 +08:00 我觉得 OP 的 IDE 配置让我眼前一黑,霓虹风格,看久了眼睛不痛吗? |
86 goodidea1 2023-06-26 16:17:03 +08:00 混写好难受,感觉跟看屎一样 |
![]() | 87 asmoker 2023-06-26 17:51:06 +08:00 代码才能挣钱 |
![]() | 88 leroy20317 2023-06-26 17:56:56 +08:00 出问题就体现出价值了 你写的屎代码别人看一天都无从下手 你一来咔咔咔几下就搞定 老板:这小伙技术可以 一来就搞定问题了 得升职加薪 万一跑了就没人代替了 - _- |
![]() | 89 ClericPy 2023-06-26 19:27:57 +08:00 如果你连前任都不如, 他们凭什么招你... |
90 NICE20991231 2023-06-27 08:12:14 +08:00 不写这个 setup 还好,可以理解为喜欢 options api 可是写了... |
![]() | 91 labubu 2023-06-27 09:18:48 +08:00 刚毕业的时候对代码有精神洁癖,现在的想法是能跑就行,快点写完,早点摸鱼 |
![]() | 92 MEIerer 2023-06-27 09:19:53 +08:00 闲的工作万岁!推给我吧! doge |
93 wednesdayco 2023-06-27 14:39:39 +08:00 笑死 我现在的公司全项目 vue2 升级 3 一堆大佬直接 copy 代码过来在 vue3 里直接跑 我在旁边看着直接是 66666 |