正在全部重构自己几年前写的代码,用屎山来形容很贴切 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kisshere
V2EX    程序员

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

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

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

    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 1: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     Solana     2768 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 08:57 PVG 16:57 LAX 01:57 JFK 04:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86