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

正在全部重构自己几年前写的代码,用屎山来形容很贴切

  •  
  •   kisshere · 2019-09-05 10:19:45 +08:00 via Android · 8946 次点击
    这是一个创建于 1940 天前的主题,其中的信息可能已经有所发展或是发生改变。

    真想给自己一耳光,几年前居然是这么烂的水平,目前修改得快要怀疑人生了,把一堆屎山不仅要啃完还要耐心品尝、细嚼慢咽的茫然感觉谁懂

    52 条回复    2020-06-16 19:10:34 +08:00
    naihs
        1
    naihs  
       2019-09-05 10:22:15 +08:00   ❤️ 4
    换个角度想想这说明自己这几年成长迅速。
    kisshere
        2
    kisshere  
    OP
       2019-09-05 10:22:42 +08:00 via Android   ❤️ 5
    比看自己几年前扣扣空间发表的非主流文字还尴尬
    dadawenxi
        3
    dadawenxi  
       2019-09-05 10:22:57 +08:00
    恭喜喜提屎山一座
    loryyang
        4
    loryyang  
       2019-09-05 10:26:25 +08:00   ❤️ 37
    我告诉你一个很遗憾的真想,再过几年,你依然发现现在重构的代码是屎
    xiangyuecn
        5
    xiangyuecn  
       2019-09-05 10:27:44 +08:00
    ``` do { 好不容易咽下去一点,...(过了一会)...,又要吐出来重新嚼一遍,然后再咽下去 } while loop ``` 这条回复有味道😂
    luzhh
        6
    luzhh  
       2019-09-05 10:37:18 +08:00
    try{
    xxThread.do();
    } catch {
    e.print;
    }
    // 睡眠一秒,等线程差不多执行完后再获取数据
    sleep(1s);
    getInfo();

    这是我当年写过的代码,交接给你别人的时候,看到这里简直惊呆了。
    12tall
        7
    12tall  
       2019-09-05 10:38:33 +08:00
    哈哈哈,前两天将入门时写的 1400 行 sql,减少到了 800 行,表示现在似乎才刚入门
    2255cn
        8
    2255cn  
       2019-09-05 10:47:15 +08:00
    看去年写的业务已经理解不到当时的逻辑了。。每行注释也猜不透为什么当时如此处理。
    littlebaozi
        9
    littlebaozi  
       2019-09-05 10:51:29 +08:00
    回想起自己小学时代码都不会写,岂不是要把自己气死,哈哈
    robinchina
        10
    robinchina  
       2019-09-05 10:53:53 +08:00
    敢吃………………重构!给勇士敬一杯!
    d0m2o08
        11
    d0m2o08  
       2019-09-05 10:58:06 +08:00
    我们这有个祖传项目,都是纯手撸的 jsp 页面,领导已经招了 3 批人修改了,每次都是干几天就跑了 2333
    adoal
        12
    adoal  
       2019-09-05 11:02:24 +08:00   ❤️ 2
    以我的浅薄经验,几年前的代码只能算是一坨屎,要重构几次之后才能成为屎山
    turi
        13
    turi  
       2019-09-05 11:06:48 +08:00   ❤️ 1
    @robinchina 一遍吃屎,一遍喝酒。这画面太美,不忍直视
    smallpython
        14
    smallpython  
       2019-09-05 11:11:26 +08:00
    能举个具体的例子吗?
    到底怎样算不好的代码?
    你又是怎么改的?
    edwin2ex
        15
    edwin2ex  
       2019-09-05 13:41:56 +08:00
    我也是,在吃屎中
    hantsy
        16
    hantsy  
       2019-09-05 13:49:14 +08:00
    各种 KPI 压力下产生的代码基本上都是屎。。。
    utoyuri
        17
    utoyuri  
       2019-09-05 13:51:27 +08:00
    那就屎上雕花
    patx
        18
    patx  
       2019-09-05 14:03:23 +08:00 via Android
    能意识到以前代码有问题,说明进步了
    jzmws
        19
    jzmws  
       2019-09-05 14:35:00 +08:00
    @d0m2o08 祖传代码再垃圾也不能动
    Resource
        20
    Resource  
       2019-09-05 14:37:08 +08:00
    @luzhh 这个有点秀,哈哈
    Greendays
        21
    Greendays  
       2019-09-05 14:39:05 +08:00
    为什么这么闲。。。我现在要改别人写的代码,那才叫。。。
    JohnLou
        22
    JohnLou  
       2019-09-05 14:42:28 +08:00 via Android
    代码能运行不出错就是好的
    pcbl
        23
    pcbl  
       2019-09-05 14:58:56 +08:00 via Android
    这 if else for while 多层嵌套竟然不出问题,卧槽,还是以前的我比较牛🐮
    limerence
        24
    limerence  
       2019-09-05 15:11:58 +08:00
    @luzhh 所以说现在应该怎么写
    mamahaha
        25
    mamahaha  
       2019-09-05 15:22:58 +08:00
    初始代码的时候想的是业务逻辑,代码重构的时候想的是结构和性能,两者不适合拿来对比。
    ShinichiYao
        26
    ShinichiYao  
       2019-09-05 15:29:37 +08:00
    重构完发现原来运行的好好代码跑崩了
    24KPureFather
        27
    24KPureFather  
       2019-09-05 16:19:19 +08:00
    @kisshere 你这回答真基霸刁钻
    24KPureFather
        28
    24KPureFather  
       2019-09-05 16:20:52 +08:00
    @luzhh 我以前这是这样操作过,那是刚毕业的时候
    codz
        29
    codz  
       2019-09-05 17:12:30 +08:00
    @luzhh 现在怎么写? 用 callback,去掉 sleep, 优化 try catch?
    JimmyTinsley
        30
    JimmyTinsley  
       2019-09-05 17:23:54 +08:00
    最近想重构一下大学的毕设课题, 重构了 30%实在干不下去了...
    avenger
        31
    avenger  
       2019-09-05 17:34:31 +08:00 via iPhone
    没有单元测试敢重构?
    lowman
        32
    lowman  
       2019-09-05 17:39:24 +08:00
    吃屎不忘拉屎人
    NotNil1
        33
    NotNil1  
       2019-09-05 17:47:26 +08:00
    让 重构的成本 > 重写的成本
    就不用面对这种问题了
    JerryCha
        34
    JerryCha  
       2019-09-05 17:51:45 +08:00
    我做毕设的时候 OpenCV 处理的部分直接挂在 UI 主线程下执行,还好挺快的没卡死
    xuanwu
        35
    xuanwu  
       2019-09-05 18:10:13 +08:00
    建议业务相关部分用中文命名标识符
    way2create
        36
    way2create  
       2019-09-05 18:44:12 +08:00
    重构自己的代码没什么...重构别人的屎山才烦
    meeken
        37
    meeken  
       2019-09-05 19:38:11 +08:00
    重构自己的起码知道什么是什么好吧...
    KunMinX
        38
    KunMinX  
       2019-09-05 19:44:13 +08:00
    Android:你还在等那个,手把手带你重构的人出现吗?

    https://juejin.im/post/5bcd58b6e51d45404c71d23f
    WispWind
        39
    WispWind  
       2019-09-05 19:55:07 +08:00 via Android
    我看自己上个月的代码都像一坨翔。。
    beastk
        40
    beastk  
       2019-09-05 19:58:51 +08:00 via iPhone
    我们不生产屎,我们只是屎的搬运工。
    qile1
        41
    qile1  
       2019-09-05 21:36:47 +08:00 via Android
    @luzhh 你这个代码提醒了我,最近写串口通信,发查询放到线程里面,几秒后无数据直接返回
    你是个方法不错
    iPhoneXI
        42
    iPhoneXI  
       2019-09-05 21:42:46 +08:00 via Android
    巧了,最近重构项目我也这么认为的


    如果一段时间没看的老代码,再看时已经很难看懂了,那么是好事:说明以前你写的比较烂,进步的机会来了。详细来讲,这是一个可以通过重构旧代码、使其逻辑更加清晰,从而提升架构水平的机会。一定要抓住。https://twitter.com/tualatrix/status/1169483566754852865
    justfortest
        43
    justfortest  
       2019-09-06 07:26:13 +08:00
    以前以为我 3 年前的代码是屎山,直到去了其它公司工作,我发现我以前的代码是一股清流,经历的两家互联网公司的代码都是一言难尽。
    xuanbg
        44
    xuanbg  
       2019-09-06 07:55:51 +08:00
    重构代码才能进步,否则无论你写多少代码,都只是原地踏步。为完成任务而写代码的时候,你是不会想着怎么写更好的,做到正确实现功能,没有 bug 已经是竭尽全力了。
    wamson
        45
    wamson  
       2019-09-06 08:57:11 +08:00 via iPhone
    最近重构了半年前写的代码,也是屎一样。
    me876
        46
    me876  
       2019-09-06 09:02:24 +08:00
    看自己以前写代码都是这种感觉,你不要惊讶,这只能说明你现在进步了
    luzhh
        47
    luzhh  
       2019-09-06 09:45:28 +08:00
    @limerence
    @codz
    线程用 callback 或者直接改成一个同步的方法等待操作完再查询数据。
    @24KPureFather
    @Resource
    毕业后的第一个项目,看到代码后直接头皮发麻,还有其他导致死循环的代码。。。
    root8080
        48
    root8080  
       2019-09-06 10:26:18 +08:00
    重构自己的屎山是真没话说 重构别人的才叫真服气 根本不想碰啊啊啊啊 唉😔
    nyanyh
        49
    nyanyh  
       2019-09-06 10:33:22 +08:00
    当初第一次写 Typescript 的时候是基于一个老项目改的,为了更快地用上 TS,各种类型全是 any,上个月想起来准备重构一下,写了半天直接放弃了
    z1154505909
        50
    z1154505909  
       2019-09-06 15:07:43 +08:00
    看了下自己当年写的注释还算够多,不过当年漏洞真你妈多
    mostkia
        51
    mostkia  
       2020-06-16 19:06:06 +08:00
    @luzhh 这。。。什么神仙逻辑,哈哈哈,你能保证多次执行后的效果是一致的吗?中途堵塞了怎么办?
    mostkia
        52
    mostkia  
       2020-06-16 19:10:34 +08:00
    所以低耦合才重要啊,吧整个需求分解成若干个功能块,然后组成一大坨可拆卸的屎山,哪一坨出问题了,不必学习老八吃屎了,只要把有问题的屎拿走换一坨新鲜的安上就可以了,哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2725 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 12:34 · PVG 20:34 · LAX 04:34 · JFK 07:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.