为何曾经自己写出的代码,过了一年,重新写,反而看不懂了. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
redhatping
V2EX    程序员

为何曾经自己写出的代码,过了一年,重新写,反而看不懂了.

  •  
  •   redhatping 2016-08-23 14:06:23 +08:00 6891 次点击
    这是一个创建于 3342 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为之前的代码叫好的同时, 人反而顿时傻掉了. 代码反而写不出来了. 如果不是代码存在电脑里, 还真觉得自己真是抄袭的代码.. 这种现象是如何产生? 如何避免呢?

    19 条回复    2016-08-24 10:21:03 +08:00
    redhatping
        1
    redhatping  
    OP
       2016-08-23 14:19:44 +08:00
    总结: 之前写的代码, 太不具备可读性.. 只是快速编程, 时间一长, 重新看懂应该没多大问题, 但是一些阅读太浪费时间了. 细节上的不留意 给以后的代码升级造成很大困恼.
    lyragosa
        2
    lyragosa  
       2016-08-23 14:25:30 +08:00
    ( 16 分钟惨案)

    很正常,我的代码的注释常常写得比正文还多,涉及复杂运算,大量公式, magic number 和 hardcode 的时候都会和写实验报告一般的写注释,很多时候还把构思思路或者一些一时灵感记录进去……就和 v2 比较鄙视的那种“一个比较判定语句都要写清楚是干嘛的”那种注释一样

    最终让我在四年之后改某段代码的时候受益匪浅……
    geeksu
        3
    geeksu  
       2016-08-23 14:29:58 +08:00
    好记性不如烂笔头,有些注释还是需要的



    目前正在看一个完全没有注释的项目,想哭
    fjzjk
        4
    fjzjk  
       2016-08-23 14:40:43 +08:00
    @lyragosa 是的,一个判定都要写注释的话,事后维护会非常舒服。领导应该也会很喜欢你这样写,虽然效率低一点
    nicevar
        5
    nicevar  
       2016-08-23 14:52:32 +08:00
    淡忘是正常的,特别是经常跨平台,翻出五六年前的代码有时候自己完全都看不懂,倒是更容易发现以前隐藏很深的 bug
    fwings260
        6
    fwings260  
       2016-08-23 14:56:26 +08:00
    原来不是我一个人。。。。。
    aprikyblue
        7
    aprikyblue  
       2016-08-23 14:59:37 +08:00 via Android
    有时不是看不懂而是以前写的太烂难以下手改。。。顺带一堆 bug 的话更酸爽。。
    WhyAreYouSoSad
        8
    WhyAreYouSoSad  
       2016-08-23 15:22:06 +08:00
    可读性很重要,加注释。不要用太复杂的算法。我的经验是,打代码千万不要大脑超频,不然后面再维护自己的代码,不一定能马上看懂
    vicalloy
        9
    vicalloy  
       2016-08-23 15:31:21 +08:00
    我怎么感觉看不懂自己之前的代码大多的设计的不合理导致的。
    iMouseWu
        10
    iMouseWu  
       2016-08-23 15:42:29 +08:00
    个人理解,抽象的越复杂,粒度越细,系统的扩展性大幅度的增加,但是可读性就会相应的下降.在不考虑其它情况下,可读性最强的其实是,所有的逻辑都在一个类中(在一个类中代码组织很乱的,就又得另外说了)
    GentleSadness
        11
    GentleSadness  
       2016-08-23 15:47:17 +08:00 via Android
    @lyragosa 发段神秘代码和解释看看
    darklowly
        12
    darklowly  
       2016-08-23 17:02:06 +08:00   1
    楼上的全部都跑题

    我也常年觉得我以前写的代码真的好。好佩服我自己
    winglight2016
        13
    winglight2016  
       2016-08-23 17:06:21 +08:00
    @darklowly 没错,我也经常惊讶于以前 coding 的思路如此精妙,要给自己 99 分。。。
    Lyrus
        14
    Lyrus  
       2016-08-23 17:31:03 +08:00 via iPhone   1
    以前只有我和上帝知道这段代码是干嘛的 现在只有上帝知道了
    Guaidaodl
        15
    Guaidaodl  
       2016-08-23 17:31:17 +08:00
    然而我每次看我一年前写的代码都觉得写得跟屎一样.
    darklowly
        16
    darklowly  
       2016-08-23 17:31:21 +08:00 via iPhone
    coconne
        17
    coconne  
       2016-08-23 20:10:02 +08:00
    @darklowly 也一样,我倒没觉得自己以前写的代码看不懂,但是偶尔看到以前的代码,我觉得现在的自己如果不查资料写不出来
    chuan6
        18
    chuan6  
       2016-08-24 10:11:06 +08:00
    是啊,不过感觉单元测试在这方面还是蛮有帮助的。有时候代码逻辑一下子看不明白,至少看测试能知道一个函数预期的行为是什么样的。
    yomuse
        19
    yomuse  
       2016-08-24 10:21:03 +08:00
    没有注释的话 告诉别人这不是你写的 ……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2681 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 12:38 PVG 20:38 LAX 05:38 JFK 08:38
    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