首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

维护自己以前写的代码时,会不会想抽自己一巴掌?

  •  
  •   allen945 · 330 天前 · 4654 次点击
    这是一个创建于 330 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每次维护项目的时候最怕的是对一些已有的功能进行升级改造,因为常常出现看不懂以前写的代码...

    然后先开始找以前的思路,找到思路后才敢修改代码.

    若是找不到思路,推翻重写... 每次遇到这种情况时,都想抽自己一巴掌,这 TM 写得什么鬼呀?

    不知道大家有没有过这种经历?

    来自一枚入门级菜鸟 web 开发者的心声~

    tips:

    上面指的是自己的个人项目,非公司或其他商业项目。

    71 回复  |  直到 2018-12-26 18:14:08 +08:00
        1
    wly19960911   330 天前 via Android   ♥ 17
    比起抽自己一把,我更喜欢的是反思,为什么会出现这种情况,业务无关逻辑代码能不能封装掉,怎么精简业务逻辑代码才是最优选择。我现在也在学习拆分逻辑和业务代码,尽量做到业务只调用逻辑方法,表面上业务代码做到最精简的行数,但是逻辑清晰,就算注解不明确也可以更快上手。

    如果有人能一开始就做一个完整精简的东西,这个才恐怖。
        2
    allen945   330 天前
    @wly19960911 学习了
        3
    lizhenda   330 天前
    写注释,好记性不如烂笔头,工作时间越长这一点越明显
        4
    HENQIGUAI   330 天前
    会,写得什么玩意儿
        5
    codermagefox   330 天前   ♥ 1
    不止想抽一巴掌...想一刀捅死....
        6
    likuku   330 天前 via iPhone
    单元测试重要性体现出来了,注释与文档重要性也体现出来了
        7
    leavic   330 天前   ♥ 18
    不,我经常看着以前的代码感叹:

    这 tm 是我写的?写的太好了,现在我都写不出来这么好的代码,你看看这行,太巧妙了,我真佩服当时的我,一定是某大神上身写的。
        8
    allen945   330 天前
    @lizhenda 有写注释,但是不敢写多,看起来很乱
        9
    allen945   330 天前
    @codermagefox ???这是我写的吗?~
        10
    SatanFu   330 天前
    不是应该高兴吗?说明自己有进步了啊!
        11
    allen945   330 天前
    @likuku 确实是
        12
    mseasons   330 天前
    这话说得,什么叫维护的时候,一个工程自己写两周,第二周看前一周的代码就想砍死自己。
        13
    duzhihao   330 天前
    有这个想法就是进步。
        14
    allen945   330 天前
    @leavic 自己都不敢相信能写出这样的代码
        15
    sammo   330 天前
    就当作是隔壁二狗子写的
        16
    allen945   330 天前
    @SatanFu 嗯,是这样的,看出了自己以前的不足
        17
    xuanwu   330 天前
    改用中文命名试试
        18
    allen945   330 天前
    @duzhihao 学习了,谢谢
        19
    allen945   330 天前
    @mseasons 哈哈哈哈哈哈哈哈哈哈
        20
    allen945   330 天前
    @xuanwu 不加个狗头吗
        21
    wispx   330 天前
    这谁写的 jb 代码,神魔恋。
    卧槽这好像是我自己写的...
        22
    xuanwu   330 天前
    @allen945 不加. 搜"中文代码示例之 Spring Boot 1.3.3 演示", java+mysql 中文命名
        23
    royzxq   330 天前 via iPhone
    某个人真的魔怔了,代码写的乱和中英文有什么关系,傻了吗
        24
    wemore   330 天前
    有时候会真的抽自己一巴掌,给后面的自己挖坑。
        25
    galikeoy   330 天前
    @leavic 您一定是高手
        26
    wly19960911   330 天前   ♥ 1
    @allen945 #2 不过这也只是自己的体会,业务代码真的不能写长,也最好避免回调函数过深,逻辑方法名长和多根本不是问题,反正我只用 interface 里面的东西,能传参数就是参数传,业务方法一写长,各种参数乱飞下来很痛苦的。

    业务代码有个注释也没用,只是告诉你干什么的(毕竟你改的就是业务代码),过程还得你自己看,而且业务代码也不可能一行行注释告诉你这个为什么这么做。逻辑代码就该怎么写注释就怎么写。

    其实 jQuery 是一个很好的逻辑封装的例子,里面根本不会理会你到底干什么,就只提供功能,从来都不用 this。我看了下前端的话,我推荐你去试试 ts 语言的框架,最近 vue 也要上 ts 了,因为面向对象的语言真的有很多学习的地方。

    说了正面例子我来说个反例。就以 vue 当例子说明,vue 可以调用 this 来修改 data。但是 this 用多了问题也出来了,逻辑代码各种调用 this,我在查 bug 的时候,发现每处都有 this.data 去修改值,而且回调初始化调用的方法非常多,这时候就需要我一个个排查究竟是谁去修改 data 了,从那时候开始我基本就只有 event 和 生命周期 才会修改 data 的值,其他地方只提供逻辑上的功能。
        27
    wly19960911   330 天前
    说起来我又突然想到一个东西了。同事曾经认为 精简代码 = 好代码,减少行数代表你能写出更好的代码。我是有点不敢苟同。现在有些情况让他们多定义几个 model,都有点不肯。
        28
    yhxx   330 天前
    不会
    因为我这种过了一年也没什么进步的再写一次也并不会比之前好到哪里去。。。
        29
    wmhx   330 天前
    2 年前接了个私活, 就是把 excel 的数据导入 mysql 然后给个界面做修改再统计的过程,excel 的行和列是不固定的, 我如何在 web 界面上展示还能修改,还要不影响统计功能. 当时想破了头写的代码, 如今真是完全看不懂了, 为什么要把 excel 的数据映射成一个类,然后再转成 json 存数据库里面, ztn 的是个人才啊,
        30
    Mac   330 天前 via Android
    并没有,反而佩服自己脑力强大,居然能拐这么多弯把问题解决了
        31
    leavic   330 天前 via Android
    @galikeoy 不是吹牛不是扯淡,只是后来很少写底层驱动了,以前的技能就有点丢失了,这其实很正常。
        32
    zhm1620   330 天前
    想抽死说明有进步啊··
        33
    alakey1989   330 天前
    @yhxx 可爱
        34
    PP   330 天前 via iPad
    Only God knows 即视。
        35
    sunnyadamm   330 天前
    关键点一定要写注释,不然。。。Only God knows
        36
    blacklee   330 天前
    入行 12 年+了,手头一个项目是 4 年前写的。我自己看着感觉还好,有时能看到有些优化空间,但不会觉得写的差了。
    当然了,回忆 6 年前看 8 年前写的东西时,有时会想骂自己傻叉。
        37
    armoni   330 天前
    感叹当时的自己太厉害了,现在写不出来了
        38
    f278478529   330 天前
    想重构框架,升级 JDK。
        39
    chanchan   330 天前
    注释是不可能注释的,我宁愿多花点时间让自己的代码更易懂 更“声明式”。
        40
    yuanfnadi   330 天前 via iPhone
    测试覆盖率 100% 随便怎么改,只要能跑过测试就可以了。
        41
    BetterManIsMe   330 天前
    一巴掌够吗
        42
    OMGZui   330 天前 via Android
    很好的重构机会:doge
        43
    32   330 天前
    比起改别人的,我更喜欢维护自己的代码.最起码自己的一直恪守规范, 业务逻辑会有注释.
        44
    yuandfish   330 天前
    其实挺有意思,可以看到自己的不足,每次维护自己的代码都会微调一下把它改得更好 :)
        45
    allen945   330 天前
    @wly19960911 非常感谢!现在一直在用 vue 开发,vue 的组件化开发蛮好的,代码可读性和简洁性很高。
        46
    zmj1316   330 天前
    这说明相比之前,技术水平有进步了,好事
        47
    allen945   330 天前
    @yhxx 说到点痛点了!!!
        48
    connection   330 天前
    善于分层
    数据流管控好
    代码只做当前要做的事情,拒绝过度设计。
        49
    digimoon   330 天前
    两巴掌
        50
    kidlj   330 天前 via iPhone
    // You ’ re not expected to understand this.
        51
    des   330 天前 via Android
    @leavic 然后想了老半天才
        52
    des   330 天前 via Android
    @leavic
    然后想了老半天才想出来是自己从某个地方抄来的
        53
    SeaRecluse   330 天前
    不会,因为那是那时的我的全力了,没必要懊悔。
        54
    ershisi   330 天前
    我说实话,看我以前的代码以后我只有一个想法,不重构了重写吧。
        55
    eslizn   330 天前
    小改小修,大改重构。。。
        56
    passerbytiny   330 天前
    每次写完代码,以 100%覆盖率为目标,亲手写单元测试代码,保证你大脑正常时永远看得懂自己写过的代码。代价是,工作时间至少翻倍,要是写的不好,翻几倍都有可能。
        57
    crazybinggan   330 天前
    有时候会惊叹于自己怎么写出怎么漂亮的代码,但是看不懂啊,现在写的跟之前的一个天一个地,屎一样。
        58
    myhot21   330 天前 via Android
    每次看以前写的代码,一般都会想起,‘‘靠,这个 BUG 真的是我写的吗?为什么有 BUG,以前从不出问题。’’
        59
    snowspace   330 天前
    想把 auther 改成别人
        60
    Aixtuz   330 天前
    抽完了,现在打算向 #1 学习~
        61
    huobazi   330 天前 via iPhone
    用了 ruby 我看自己以前写的 C# 觉得好傻,写那么多设计模式,又没啥用
        62
    wolfie   330 天前
    这不是好事吗?
    所以各种规范文档越早看完越好。
        63
    Visionhope   330 天前 via Android
    @leavic #7 我有时候也会有这样的感觉,感觉以前的自己写的代码也不错。
        64
    mocxe2vwww   330 天前 via iPhone
    @Mac 哈哈,深以为然。
        65
    kelvinblood   330 天前 via iPad
    有的,16 年的时候把自己 14 年的代码重构之后,加功能再也不揪心。

    早期的代码是以完成任务为主,新功能扩展要命。

    重构的时候都是把通用的功能往 model 里塞,相互调用尽量走广播。从此之后开发新功能就很顺利了。
        66
    t6attack   330 天前
    技术退步的人表示:以前写的代码,已经看不懂了。尴尬
        67
    MonoLogueChi   330 天前 via Android
    现在看以前自己写的代码的感觉是,这 tm 太乱了吧,不行不行,我要重构一下
        68
    bmy   329 天前
        69
    houshuu   329 天前
    现在养成习惯了,稍微复杂点的逻辑就写点注释,确保以后的自己能看懂。
    但是随着自己语言理解的加深,总是忍不住去重构一次又一次。🐶
        70
    ttvast   329 天前
    数年前写的软件,现在想升级一下,发觉自己根本看不懂,现在根本没有能力写出这样的代码
        71
    Ritr   326 天前
    我刚上班的时候会这样,不过现在不会了。
    现在写代码比较严谨,扩展性也比较好,以至于有几个变更需求我都很开心,因为没几分钟就搞定了,由此产生的愉悦感无法言说。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1798 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 86ms · UTC 16:09 · PVG 00:09 · LAX 08:09 · JFK 11:09
    ♥ Do have faith in what you're doing.