V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
taro0822
V2EX  ›  程序员

换了份新工作,我悟了

  •  2
     
  •   taro0822 ·
    floyd-li · 2023-06-25 14:19:33 +08:00 · 16111 次点击
    这是一个创建于 550 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本月入职了一家新公司,看到项目的代码,我眼前一黑

    (至于其他的,比如中文做 key 名,一堆 if-else 不优化等等槽点太多的,就不贴了)

    (看了眼 git 提交记录,这段代码是前端组长一个人写的,并且是 Layout 中的代码,并非业务组件代码)

    如果放在三四年前,我可能会找前端组长讨论下重构的必要性(这个项目刚开始,不存在太多历史包袱)。

    但是现在 OP 已经三十岁了,坦率地讲对代码,尤其是前端代码的热情已经大不如前,丝毫不想碰原来的代码。只想着自己的代码写的稍微整洁一点,能不在自己的代码上拉太多的💩就好。

    PS 从我入职两个多礼拜的观察来看,工作目前看来也不怎么饱和,一个静态页面两个人安排了四天时间,和我一同进来的前端老哥已经闲到在自学 Java 了。

    虽然入职的时候被 HR 压了薪资,比之前的工资低了 20%,但是想了想现在的工作状态,觉得还算满意,钱多事少离家近目前看来已经占了后面两样,多点时间带薪学习、陪陪老婆孩子倒也挺好。

    现在让我焦虑的可能是工作状态太过于轻松,有点担心会不会某天被裁员……

    93 条回复    2023-06-27 14:39:39 +08:00
    insanny
        1
    insanny  
       2023-06-25 14:23:00 +08:00   ❤️ 6
    截图里面的代码都有哪些不合规的地方,vue 新手虚心请教一下
    silk
        2
    silk  
       2023-06-25 14:26:55 +08:00
    升级遗留问题 或者 2.7 版本什么的。反正能用就行,主打的就是一个性价比
    taro0822
        3
    taro0822  
    OP
       2023-06-25 14:28:33 +08:00
    @insanny compesition 和 options 写法混用,虽然可以这么写,但是看起来非常“不高级”,并且代码中没有任何地方是依赖于某一种特定写法的
    taro0822
        4
    taro0822  
    OP
       2023-06-25 14:30:24 +08:00
    @silk 新项目,直接上的 v3 。虽然但是,又不是不能用.jpg (doge
    insanny
        5
    insanny  
       2023-06-25 14:31:47 +08:00
    @taro0822 感谢
    sakae010
        6
    sakae010  
       2023-06-25 14:39:12 +08:00
    什么主题
    tempw
        7
    tempw  
       2023-06-25 14:39:55 +08:00
    想问下薪资范围多少
    amon
        8
    amon  
       2023-06-25 14:42:57 +08:00   ❤️ 1
    一个很残酷的事实:代码绝大多数场景下都是能用就行。

    关于程序员的核心竞争力,你再品品。
    Xi
        9
    Xi  
       2023-06-25 14:46:03 +08:00   ❤️ 2
    虽然工资不高,但是感觉你进对了公司
    brader
        10
    brader  
       2023-06-25 14:46:57 +08:00
    这种问题,见多了就好了
    MRG0
        11
    MRG0  
       2023-06-25 14:52:36 +08:00
    setup 写<script>里的写法最爽
    NGXDLK
        12
    NGXDLK  
       2023-06-25 14:54:35 +08:00   ❤️ 2
    遗留代码,除非有把握,否则还是别动。
    而且就像 8 楼说的,中国的大部分公司的业务代码随便写写就行,垃圾代码多也就顺理成章。
    Daniel17
        13
    Daniel17  
       2023-06-25 14:59:15 +08:00
    屎山如果不去碰,其实还行,但可怕的是你得在上面修改或者迁移
    Hilong
        14
    Hilong  
       2023-06-25 14:59:16 +08:00
    现在我们都是 script setup 这种了. 写起来最舒服,不用写一堆的 options
    hnhhm2009
        15
    hnhhm2009  
       2023-06-25 14:59:56 +08:00
    好奇位置和薪资
    beijinglowb
        16
    beijinglowb  
       2023-06-25 15:14:12 +08:00   ❤️ 1
    钱多事少的代码就是好代码
    8355
        17
    8355  
       2023-06-25 15:25:58 +08:00
    现在让我焦虑的可能是工作状态太过于轻松,有点担心会不会某天被裁员……

    你现在学 Java 不就是连演都不演了?让 hr 知道下一个就是你
    0n2ynu
        18
    0n2ynu  
       2023-06-25 15:26:39 +08:00
    跟楼主基本一致. 拼音缩写的变量, 复制粘贴的函数, 一层套一层的 if else, 奇丑的审美.

    但工作比较闲, 公司也正规. 所以暂时在屎山里畅泳 --!
    milkv
        19
    milkv  
       2023-06-25 15:36:22 +08:00   ❤️ 1
    这代码怎么了,又不是不能跑
    taro0822
        20
    taro0822  
    OP
       2023-06-25 15:37:15 +08:00
    @sakae010 SynthWave '84 装完试试 Enable Neon Dreams 这个命令
    taro0822
        21
    taro0822  
    OP
       2023-06-25 15:39:35 +08:00
    @amon 是的,自己也有一些往项目管理方向转的想法,慢慢来吧。
    israinbow
        22
    israinbow  
       2023-06-25 15:39:39 +08:00   ❤️ 16
    老板: 你一定要把 "重构", "设计模式", "架构思想" 掌握好, 优秀的程序员写代码是艺术创造.
    我: 粪海狂蛆.jpg
    wu67
        23
    wu67  
       2023-06-25 15:41:59 +08:00
    你这还好啦.
    我这里有几十个页面, 子组件直接改了父组件传进来的引用类型值, 当我发现这堆奇怪代码能按业务正常跑时, 心脏都跳快了几下...
    taro0822
        24
    taro0822  
    OP
       2023-06-25 15:44:10 +08:00
    @hnhhm2009 坐标合肥,年包 20 不到。
    taro0822
        25
    taro0822  
    OP
       2023-06-25 15:45:48 +08:00
    @Xi 嗯,我觉得也挺好,希望能在这渡过 35 岁危机吧
    taro0822
        26
    taro0822  
    OP
       2023-06-25 15:46:35 +08:00
    @8355 学 Java 的是我隔壁的老哥,不是我……不过我也准备学学 Go 来着
    taro0822
        27
    taro0822  
    OP
       2023-06-25 15:49:51 +08:00
    @NGXDLK 感同身受,并不是每家公司都千万日活百万并发,各种管理后台数据大屏才是大多数公司的日常,代码相对而言,没有人重要。
    zhuisui
        28
    zhuisui  
       2023-06-25 15:51:13 +08:00
    不能说是新项目就可以上 v3 ,还要考虑已有同事的编码习惯问题。
    旧的语法写习惯了,换成新的也不容易。
    ZGame
        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);
    }
    taro0822
        30
    taro0822  
    OP
       2023-06-25 16:10:12 +08:00
    @zhuisui 考虑团队开发习惯我能理解,但是我觉得吧,这个写法是不是得统一起来?哪怕统一成 options 写法呢。我的槽点主要是这两者混用,维护起来心智负担稍微高了一点……
    hackerdom
        31
    hackerdom  
       2023-06-25 16:22:44 +08:00
    发给 chatgpt 让他来优化一下这种代码结构
    FakerLeung
        32
    FakerLeung  
       2023-06-25 16:23:26 +08:00
    @taro0822 #20
    webstorm 有吗?好像搜不到
    lichdkimba
        33
    lichdkimba  
       2023-06-25 16:28:12 +08:00   ❤️ 1
    这不就是 options 的写法吗……
    stkstkss
        34
    stkstkss  
       2023-06-25 16:29:56 +08:00 via iPhone
    不用管 在这家公司躺平就行
    QlanQ
        35
    QlanQ  
       2023-06-25 16:36:24 +08:00
    说说我吧,刚到这个新公司,来之前 技术部负责人说,他们有个 PHP 的项目,是找自己的朋友做的,试了试感觉可以做,现在想自己做
    然后我来了之后看了代码,就一个开源框架改的,框架还不更新了,然后他们直接在 vendor 里面改了,然后就是那代码我是看不下去了,项目没有上线的那种,然后我加班加点 用 1 个月时间重构了整个后端和后端的管理端
    前端的页面重新对接接口
    就这刚弄完,又接手了一个项目,yii 1.1 ,同样的烂,我已经不想在这公司待了,写这代码的人还觉得自己厉害的不行

    本着,对方的代码写的不咋样,可能在其他地方很厉害的呢,我就没敢怼

    真的是 low 就不说了,也不知道是自己不自知还是不承认,拽的跟 2 、5 、8w 似的

    这里说的代码不行,就不说设计模式那种争议性的东西了

    打开代码,ide 报一堆错,各种 n+1 ,各种变量为定义
    表设计,中间表冗余数据,直接拿来用,也不知道修改信息的时候,中间表咋办
    daokedao
        36
    daokedao  
       2023-06-25 17:11:11 +08:00
    本就是公司的螺丝钉,非要打造成艺术品
    cirzear
        37
    cirzear  
       2023-06-25 17:26:08 +08:00   ❤️ 1
    代码跟人,有一个能跑就行
    kkk9
        38
    kkk9  
       2023-06-25 17:48:22 +08:00
    @QlanQ u1s1 ,不讲职业道德的提前下,应该在公司维护现有的,下班时间加班加点重做变现
    QlanQ
        39
    QlanQ  
       2023-06-25 17:52:12 +08:00
    @kkk9 公司哪个项目让我修改,我是真下不去手,看着就难受,所以才重构的,公司也给我了 2 个月的时间
    wonderfulcxm
        40
    wonderfulcxm  
       2023-06-25 18:05:57 +08:00 via iPhone
    你说得对,我也释怀了。
    tkHello
        41
    tkHello  
       2023-06-25 18:26:32 +08:00
    代码没有喷点
    unicreators
        42
    unicreators  
       2023-06-25 18:27:35 +08:00
    你这还好了,我这的一个神队友,基础服务里给你插业务代码,还是 if..else 打补丁那种。
    搞个多环境下的配置,明明可以多个配置文件打包时切就行,神友直接给塞一个配置文件里(环境前缀+键),在打包时给加了一个环境参数,程序运行时取到这个参数再去拼键找对应的值,所有用到配置的地方他都给改了一遍,看到那个 commit 我人傻了。。
    PungentSauce
        43
    PungentSauce  
       2023-06-25 18:28:38 +08:00   ❤️ 2
    裁员的原因是公司不盈利,而不是你的忙与闲。
    daliusu
        44
    daliusu  
       2023-06-25 18:58:17 +08:00
    你这代码不就是尤雨溪要的吗?给 vue3 留了那么大的两个 ts 的坑( props 和 emit ),就为了兼容这种写法,所以这么写有什么问题?
    wusheng0
        45
    wusheng0  
       2023-06-25 19:13:53 +08:00 via Android
    @daliusu

    vue3 文档:
    > 你可以在一个选项式 API 的组件中通过 setup() 选项来使用组合式 API 。

    然而,我们只推荐你在一个已经基于选项式 API 开发了很久、但又需要和基于组合式 API 的新代码或是第三方库整合的项目中这样做。
    kungsun
        46
    kungsun  
       2023-06-25 19:19:05 +08:00
    @PungentSauce 盈利都好说,不盈利亲爹都给你裁掉
    busfool
        47
    busfool  
       2023-06-25 19:43:02 +08:00
    这都不是咱需要考虑太多的问题
    cnrting
        48
    cnrting  
       2023-06-25 19:45:29 +08:00 via iPhone
    能挣钱的代码就是好代码
    Frankcox
        49
    Frankcox  
       2023-06-25 19:47:53 +08:00
    @FakerLeung 应该只有 vscode 有
    NoKey
        50
    NoKey  
       2023-06-25 20:08:28 +08:00
    一切,以负责人代码 review 合入为准
    你说啥,没有 review ,测试过了就合入?
    那管好自己就 ok 了
    hello826
        51
    hello826  
       2023-06-25 21:27:20 +08:00
    @taro0822 老哥合肥哪里,我在合肥 kdxf ,也想换个事少的
    gyt95
        52
    gyt95  
       2023-06-25 23:19:37 +08:00
    挺好的,有空还可以学一门后端语言,不论 Java 还是 Go 。前端未来是全栈。
    songray
        53
    songray  
       2023-06-25 23:31:25 +08:00
    @taro0822 粗糙的写法心智负担是不高的,炫技心智负担才高....
    例如,虽然是新开的项目,但团队大多数都是 vue2 并没有学习 vue3 ,平滑一些也是好的做法,script setup 或者是 lang=tsx 还有直接 defineComponent 然后用 tsx ,现在的 vue 就是很拧巴很乱....
    如果是那种比较低级的项目,又不是不能跑,如果是高级的项目,反正都要 hack ,还谈什么心智负担呢...
    话说国内前端不管大小团队反正很少有 review.... 所以也没几家代码能称得上干净的。
    anaf
        54
    anaf  
       2023-06-25 23:32:09 +08:00
    图中不是 vue2 的语法吗 有什么问题吗
    CoderLife
        55
    CoderLife  
       2023-06-25 23:39:32 +08:00
    除非公司只有你一个开发....
    RRRSSS
        56
    RRRSSS  
       2023-06-25 23:42:41 +08:00
    你三十才有这想法啊

    我刚工作一年的时候,就知道,代码能跑就好,重构什么,领导又看不见,有啥用。有时间自己学习,哪怕打打游戏都行
    Pastsong
        57
    Pastsong  
       2023-06-26 00:23:41 +08:00
    程序员的核心竞争力不是你能够用最新最好的框架把老代码重构一遍
    XueHan
        58
    XueHan  
       2023-06-26 00:51:11 +08:00
    工作久了就知道了,工作不是比技术多高级,而是是否能支撑业务稳定地运行,哪怕最垃圾的写法,只要能跑不出问题对老板而言就是好代码。
    tuomasi
        59
    tuomasi  
       2023-06-26 08:12:44 +08:00
    现在还有心管别人代码整不整洁,还管 Vue 写的高不高端,30 岁了,不是小孩子了,给自己想条退路吧,别人写的一坨屎我都夸好,真棒
    ChenSino
        60
    ChenSino  
       2023-06-26 09:05:57 +08:00
    哈哈“但是现在 OP 已经三十岁了,坦率地讲对代码,尤其是前端代码的热情已经大不如前,丝毫不想碰原来的代码。只想着自己的代码写的稍微整洁一点,能不在自己的代码上拉太多的💩就好。” 哈哈哈哈 很真实
    wangerka
        61
    wangerka  
       2023-06-26 09:26:54 +08:00
    应该是原本用的 vue2 ,后来边学 vue3 边改了一版
    adgad2
        62
    adgad2  
       2023-06-26 09:26:55 +08:00
    +1 ,以前还想着重构,现在就是在屎山上继续拉屎,又不是不能用

    清闲不加班有钱就行
    woshinide300yuan
        63
    woshinide300yuan  
       2023-06-26 09:27:51 +08:00
    当然是带薪学习和顾及家庭了,嘻嘻。 什么代码不代码的,什么屎山不屎山的,只有小屁孩才会较真那些东西。能跑就行,代码就是用来跑的,不是用来看的, 哈哈。
    yjw239
        64
    yjw239  
       2023-06-26 09:30:10 +08:00
    还行,个人觉得 vue 本身的锅更大些
    jenhe
        65
    jenhe  
       2023-06-26 09:31:22 +08:00   ❤️ 2
    鄙视前辈,理解前辈,成为前辈
    ---引用 v 友
    horizon
        66
    horizon  
       2023-06-26 09:32:16 +08:00
    @songray #53
    这不叫平滑,这叫垃圾。
    平滑是指旧组件用 vue2 ,新组件用 vue3 。
    lemon6
        67
    lemon6  
       2023-06-26 09:40:44 +08:00
    这段代码有啥问题吗。。
    iloveayu
        68
    iloveayu  
       2023-06-26 09:41:34 +08:00
    这代码能跑不(稳定别经常救火)
    这代码跑起来给公司生钱不(能支持给你开工资)
    如果都可以,那么,下一步:
    优雅地避开原来的屎,继续拉新的华丽得屎
    paopjian
        69
    paopjian  
       2023-06-26 09:48:09 +08:00
    vue2 新人甚至看不懂" compesition 和 options "是啥, 搜了一下原来是 vue3 和 vue2 语法混用, 果然还是知识不足了啊
    iosqiao
        70
    iosqiao  
       2023-06-26 09:50:44 +08:00
    外层代码看着结构还可以,敢不敢放出来详细的看看?
    istomyang
        71
    istomyang  
       2023-06-26 09:51:04 +08:00
    原则:能跑就行,做好新代码隔离。
    Terry05
        72
    Terry05  
       2023-06-26 09:55:06 +08:00
    历史代码能不碰就不碰,屎山代码总会有的,即使是认为自己是高度代码洁癖的人,隔一段时间回看自己的代码都会产生不适(当时我怎么想的,怎么就写成这鸟样了),新的模块,新项目,按照你自己觉得规范的方式来吧
    kamilic
        73
    kamilic  
       2023-06-26 10:22:47 +08:00
    在业务优先时间优先的情况下,又没有专门的技术债修复时间,怎么可能没有屎山。
    只能套用《重构》说过的一句话,让自己经过的地方变得更好就行了。🥲
    lincanbin
        74
    lincanbin  
       2023-06-26 10:28:15 +08:00
    能跑不要动
    Vegetable
        75
    Vegetable  
       2023-06-26 10:38:00 +08:00
    vue 典型的千人千面, 缺乏最佳实践的指导. 我现在感觉组合式 API 在业务代码中及其容易失控, 下限是远低于 options 写法的.
    gadore
        76
    gadore  
       2023-06-26 11:22:57 +08:00
    @Vegetable 你这显然是没有把 Vue3 推出的特性好好带到正式的项目中去实践。Vue3 解决了 Options Api 写法中最大的业务杂糅问题,通过 useHook 的写法各种业务可以相互隔离到各个不同的文件中去,让主体界面保持 UI 布局的简洁。是非常高明的设计,如果它没什么用,官方也不会推出的。
    当然了,OP 发出来的这段 Vue2 混写 Vue3 的杂交就更是如此了,属于是:我学了,但好像又什么都没学。
    部分大龄程序员在面对新技术的初期是这样的,包括我以及我的领导
    Vegetable
        77
    Vegetable  
       2023-06-26 11:32:50 +08:00
    @gadore 这个设计确实很高明, 写法人容易学会, 但本身想用好这套东西需要的水平还是很高的. 而前端本身就缺乏统一的认识, 大家写出来的东西都不一样, 在一个文件里写完全部逻辑的大有人在
    gadore
        78
    gadore  
       2023-06-26 12:37:32 +08:00
    @Vegetable 这倒是,上下限都太宽了,导致平均水准参差不齐,最关键是,还有“又不是不能用”派别的存在,这就让那些好好注意工程性、易用性的人所做的工作显得非常多余,也就导致了更多的人摆烂。不过有能力的人更多地会用别的办法提升自己。终究是会有用武之地的。
    horizon
        79
    horizon  
       2023-06-26 12:40:31 +08:00
    @Vegetable #77
    别黑前端了。。前端程序员没这么 low
    uni
        80
    uni  
       2023-06-26 12:54:16 +08:00
    确实眼前一黑,不过习惯了也就算了
    wmz000
        81
    wmz000  
       2023-06-26 13:12:09 +08:00
    就我一个人看不见图么?
    taro0822
        82
    taro0822  
    OP
       2023-06-26 13:59:57 +08:00
    @hello826 合肥就这么点大的地方,还是不暴公司了吧……
    goonxh
        83
    goonxh  
       2023-06-26 14:05:12 +08:00
    hhhhh 我们一个写了五年的项目,中间从 vue2 升级到 vue3 ,现在一半 vue2 ,一半 vue3 ,想用什么写,就用什么写
    Natsuno
        84
    Natsuno  
       2023-06-26 14:07:47 +08:00
    你一说合肥,我就理解了,正常现象(同合肥前端)
    lingeo
        85
    lingeo  
       2023-06-26 14:17:33 +08:00
    我觉得 OP 的 IDE 配置让我眼前一黑,霓虹风格,看久了眼睛不痛吗?😂
    goodidea1
        86
    goodidea1  
       2023-06-26 16:17:03 +08:00
    混写好难受,感觉跟看屎一样
    asmoker
        87
    asmoker  
       2023-06-26 17:51:06 +08:00
    💩代码才能挣钱
    leroy20317
        88
    leroy20317  
       2023-06-26 17:56:56 +08:00
    出问题就体现出价值了 你写的屎代码别人看一天都无从下手 你一来咔咔咔几下就搞定 老板:这小伙技术可以 一来就搞定问题了 得升职加薪 万一跑了就没人代替了 - _-
    ClericPy
        89
    ClericPy  
       2023-06-26 19:27:57 +08:00
    如果你连前任都不如, 他们凭什么招你...
    NICE20991231
        90
    NICE20991231  
       2023-06-27 08:12:14 +08:00
    不写这个 setup 还好,可以理解为喜欢 options api
    可是写了...
    daimiaopeng
        91
    daimiaopeng  
       2023-06-27 09:18:48 +08:00
    刚毕业的时候对代码有精神洁癖,现在的想法是能跑就行,快点写完,早点摸鱼
    MEIerer
        92
    MEIerer  
       2023-06-27 09:19:53 +08:00
    闲的工作万岁!推给我吧! doge
    wednesdayco
        93
    wednesdayco  
       2023-06-27 14:39:39 +08:00
    笑死 我现在的公司全项目 vue2 升级 3 一堆大佬直接 copy 代码过来在 vue3 里直接跑
    我在旁边看着直接是 66666
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5353 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:54 · PVG 13:54 · LAX 21:54 · JFK 00:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.