V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ChefIsAwesome
V2EX  ›  职场话题

吐槽下前端烂代码

  •  
  •   ChefIsAwesome · 2022-03-12 17:15:11 +08:00 · 3406 次点击
    这是一个创建于 768 天前的主题,其中的信息可能已经有所发展或是发生改变。

    获取了这样的一个数据:

    	
        data: {
        	foo: {
            	bar,
            },
        }
    

    接着他把这数据传给组件。传的是 foo 的数据,字段名却写成了 bar 。

    
    	<Component :bar="foo" />  
    
    

    接下里他写了好几十个组件,全都这么干。this.bar.bar 这样的写法频频出现,他也无所谓,破罐子破摔了。

    我这是造了多大的孽,才得来重构这种鬼东西。

    24 条回复    2022-03-14 11:17:13 +08:00
    neutrinos
        1
    neutrinos  
       2022-03-12 17:28:51 +08:00 via iPhone
    老板听到重构就觉得你在摸鱼
    gouflv
        2
    gouflv  
       2022-03-12 17:41:38 +08:00 via iPhone
    说实话,我自己写的 vue 项目,都不太敢重构
    EPr2hh6LADQWqRVH
        3
    EPr2hh6LADQWqRVH  
       2022-03-12 17:43:41 +08:00 via Android
    这几个框架层层盘剥,前端的可维护性简直就是笑话
    EPr2hh6LADQWqRVH
        4
    EPr2hh6LADQWqRVH  
       2022-03-12 17:45:24 +08:00 via Android   ❤️ 2
    前端最常见的维护手段就是整体重写,重写之后等着过两年再次重写
    tonytonychopper
        5
    tonytonychopper  
       2022-03-12 18:19:24 +08:00
    说明了 lint 和 cr 的重要性= =
    wunonglin
        6
    wunonglin  
       2022-03-12 18:39:03 +08:00
    没有类型就是这个样子
    vivipure
        7
    vivipure  
       2022-03-12 19:26:50 +08:00
    项目开发 code review 还是有必要的
    kunkunzhang
        8
    kunkunzhang  
       2022-03-12 20:00:24 +08:00
    一定要 cr ,条件允许的话一个 pr/mr 最好两个人以上 cr 通过再合,大家互相纠正,为了保证代码质量也为了一起进步
    hhjswf
        9
    hhjswf  
       2022-03-12 21:20:21 +08:00 via Android
    前端有什么重构的必要吗
    wu67
        10
    wu67  
       2022-03-12 21:33:41 +08:00
    讲真, 如果不是公用组件, 其实根本不用管太多, 因为说不定下周就改了, 或者写完丢上去就再也不会动了, 思考简直浪费时间, 在老板面前也讨不到好...

    个人认为只有反复 /多处使用的的公共组件才有规划和重构的需要, 至于其他的, 能把数据逻辑和命名捋清就行
    liyang5945
        11
    liyang5945  
       2022-03-12 23:29:26 +08:00   ❤️ 1
    让你见识见识我司大神的代码
    Terminator0826
        12
    Terminator0826  
       2022-03-13 04:20:37 +08:00 via Android
    this.爸.爸 🌝
    yanqing07
        13
    yanqing07  
       2022-03-13 08:46:12 +08:00
    @liyang5945 看起来是 jQ 时代的产物。如果是那个时代的代码,我觉得可以理解。那时候没有 lodash ,没有 filter/map/reduce 这些大家都是层层循环的多
    liyang5945
        14
    liyang5945  
       2022-03-13 09:13:26 +08:00
    @yanqing07 #13 是 jq 时代的没错,但是到 2020 年他仍然在写这种代码,真的恶心人
    darkengine
        15
    darkengine  
       2022-03-13 11:41:28 +08:00
    如果是完全接手了,用 IDE 给重命名了吧,不然不知道啥时候一个没注意就出 bug 了
    kingjpa
        16
    kingjpa  
       2022-03-13 12:28:47 +08:00
    @liyang5945 糟糕,这代码是我喜欢的风格
    cszchen
        17
    cszchen  
       2022-03-13 12:33:38 +08:00 via iPhone
    @liyang5945 糟糕,是心动的感觉
    liyang5945
        18
    liyang5945  
       2022-03-13 13:32:40 +08:00   ❤️ 1

    @kingjpa #16
    @cszchen #17 再来一点,注意行号
    kingjpa
        19
    kingjpa  
       2022-03-13 14:01:20 +08:00
    @liyang5945 我收回我说的话
    langzibuhuishou
        20
    langzibuhuishou  
       2022-03-13 14:06:52 +08:00
    只会一点点前端,看了楼上截图的代码。带入场景,如果是自己接手的话,已经开始头疼恶心了。
    luffy
        21
    luffy  
       2022-03-13 15:17:32 +08:00
    我猜猜:

    1. 楼主大概率在 996 类型的公司
    2. 应该是民企
    3. 这个职位的前端面试,应该不会面系统设计
    4. 这个项目应该也没开始多久,时间不长
    5. 项目经理或者 leader 应该不关心代码质量,更关心进度
    6. 你们应该没有 code review 机制
    7. 老板不关心技术好坏
    8. 团队内应该没有高手
    9. 团队氛围应该基本没有


    不知道猜中几条
    darkengine
        22
    darkengine  
       2022-03-13 20:35:45 +08:00
    @liyang5945 #18 这种莫名其妙的缩写,如果没有需求文档(大概率没有)估计得对着后端接口源码才能搞懂是要干啥。。。
    jones2000
        23
    jones2000  
       2022-03-14 00:30:50 +08:00
    一个函数超200行就需要重构
    一个函数里面循环嵌套>2就需要重构
    一段代码在4地方以上重复出现,就需要移到公共库里。

    大家都是混口饭吃,能跑通就行了,毕竟都是公司项目,代码是属于公司的,拿一天钱干一天活。如果是自己的产品应该就不会这么搞了,毕竟是自己混饭吃的东西了。
    ChefIsAwesome
        24
    ChefIsAwesome  
    OP
       2022-03-14 11:17:13 +08:00
    @darkengine 我这一堆 if (flag) 的代码。flag 是啥意思怕是永远也不知道了,好在即使这么写影响也不大。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5460 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:30 · PVG 11:30 · LAX 20:30 · JFK 23:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.