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

我发现公司里面最难的活并不是开发新产品新功能,而是在没有文档没有人会的老代码上增加功能

  •  
  •   darknoll · 2021-06-04 08:42:59 +08:00 · 7551 次点击
    这是一个创建于 1271 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简直是太难了 孤立无援,每天都是绝望的心情,战战兢兢,不知道什么时候能干完活,甚至都不知道能不能完成功能 有时候踩到一个坑要花一两天时间解决,这就是传说中的苦活脏活累活了吧

    60 条回复    2021-06-08 14:54:36 +08:00
    wqgogogo
        1
    wqgogogo  
       2021-06-04 08:47:16 +08:00
    看代码一天,写代码一小时
    darknoll
        2
    darknoll  
    OP
       2021-06-04 08:51:24 +08:00
    @wqgogogo 写代码的时候全靠猜
    zjsxwc
        3
    zjsxwc  
       2021-06-04 08:53:31 +08:00
    所以要有好的设计,
    NetBeans 这些开源项目的源码都很容易上手。
    mazyi
        4
    mazyi  
       2021-06-04 08:54:50 +08:00 via iPhone   ❤️ 4
    还好啦,至少你还有代码。。。见过 20 年前没有代码的项目要改的吗
    Cbdy
        5
    Cbdy  
       2021-06-04 08:54:51 +08:00 via Android
    不想改可以提桶跑路
    Hconk
        6
    Hconk  
       2021-06-04 09:02:28 +08:00 via iPhone
    @mazyi 给二进制文件打 patch 吗,之前看过一篇文章就是直接改二进制文件修 bug 。
    taogen
        7
    taogen  
       2021-06-04 09:13:09 +08:00
    我也经历过。无数人接手,无数个人的屎山,没有文档,只能硬啃代码,然后继续在屎山上堆代码。
    我的做法是部分重构,老的模块不管,新的模块不参考之前的代码而是自己重新搭建一套基础结构上写。
    mazyi
        8
    mazyi  
       2021-06-04 09:15:52 +08:00
    @Hconk 是的,都不是正常的开发干的事情了,感觉自己是一个黑客 hhhhh
    AngryPanda
        9
    AngryPanda  
       2021-06-04 09:15:57 +08:00   ❤️ 1
    增加功能不是最难的,而是要求你重构这些老代码。
    zhongjun96
        10
    zhongjun96  
       2021-06-04 09:18:05 +08:00   ❤️ 1
    😷 我司乙方跑路,没给源码,只给了安装包,只能反编译出来继续改。变量名全是 i1,i2,i3 。老代码最起码看字段命名还能猜一猜
    leven87
        11
    leven87  
       2021-06-04 09:20:38 +08:00   ❤️ 1
    这种代码怎么通过代码评审的,不规范的公司还是跑路吧,反正也学不到什么东西
    AngryPanda
        12
    AngryPanda  
       2021-06-04 09:22:07 +08:00
    @leven87 如果钱还行呢,舍不得跑啊
    ningfan120
        13
    ningfan120  
       2021-06-04 09:25:43 +08:00
    PS0977yM5aKe5Yqg5Yqf6IO95Lmf5aW96K+077yM5pyA5oCV5aKe5Yqg5Yqf6IO95L6d6LWW5LmL5YmN6ICB5Luj56CB55qE77yM55yL5LiA5aCG5bGx44CC44CC44CC44CC44CC44CC
    darknoll
        14
    darknoll  
    OP
       2021-06-04 09:27:26 +08:00
    @zhongjun96 这活你接了?
    zhongjun96
        15
    zhongjun96  
       2021-06-04 09:28:18 +08:00
    @darknoll #14 打工人,没得选择的权利
    darknoll
        16
    darknoll  
    OP
       2021-06-04 09:31:46 +08:00
    @zhongjun96 如果是 C#那种还好一点,如果是 C/C++的话,感觉没法改啊
    sadfQED2
        17
    sadfQED2  
       2021-06-04 09:32:42 +08:00 via Android
    @zhongjun96 大佬牛逼,收下我的膝盖
    Exin
        18
    Exin  
       2021-06-04 09:48:17 +08:00
    俺也一样!成就感全无
    bagel
        19
    bagel  
       2021-06-04 09:56:27 +08:00
    没有文档没啥影响,好的代码本身就是文档。怕的是代码本身质量不行。。
    pkoukk
        20
    pkoukk  
       2021-06-04 10:34:21 +08:00
    老的可以维护,拒绝增加功能。
    增加功能一律新写
    falcon05
        21
    falcon05  
       2021-06-04 10:41:20 +08:00 via iPhone
    无他,唯手熟尔
    TokyoNight
        22
    TokyoNight  
       2021-06-04 10:47:00 +08:00
    而且这种改完还最容易出 bug
    fkdtz
        23
    fkdtz  
       2021-06-04 10:48:53 +08:00
    在屎山上拉屎,之后交给下一个人
    zpfhbyx
        24
    zpfhbyx  
       2021-06-04 10:50:02 +08:00   ❤️ 2
    😂 还有比这难的。。 除了线上。。线下代码根本跑不起来。。
    geekboy
        25
    geekboy  
       2021-06-04 10:50:41 +08:00 via Android
    有同感
    fengjianxinghun
        26
    fengjianxinghun  
       2021-06-04 11:43:33 +08:00
    @darknoll patch 汇编 注入,当然能,难是难点
    lifespy
        27
    lifespy  
       2021-06-04 13:10:15 +08:00
    @zpfhbyx #24 哈哈,我之前遇到一个项目就是,只能文件替换的,java
    Kv_se7en
        28
    Kv_se7en  
       2021-06-04 13:25:10 +08:00
    我这也遇到过,另一个项目组散了,我们接,然后项目代码不全,配置项不全,安装的有些 npm 组件是私有的,非常醉人。
    charlie21
        29
    charlie21  
       2021-06-04 13:31:59 +08:00
    @pkoukk #20 敢问是写什么语言 用什么 SDK 的
    arbit
        30
    arbit  
       2021-06-04 13:35:19 +08:00
    @taogen 额不参考之前的代码的话,等到你离职的时候,下个接手的人又是一堆更高的屎山
    Rocketer
        31
    Rocketer  
       2021-06-04 13:46:25 +08:00 via iPhone
    我也搞过,而且我想写个独立插件插进去用还不允许,领导逼着我拉跟以前风格一样的屎
    yimity
        32
    yimity  
       2021-06-04 14:00:28 +08:00
    我现在经常干的事就是在我们 12 年 extjs 4.1.2 的没有文档的系统中加功能,改代码。
    v2erxh
        33
    v2erxh  
       2021-06-04 14:33:33 +08:00
    再加一条:测试环境没办法测
    Routeros
        34
    Routeros  
       2021-06-04 14:39:53 +08:00
    本来就是啊
    xuanbg
        35
    xuanbg  
       2021-06-04 14:50:58 +08:00
    盲生,你终于发现了华点!
    iovekkk
        36
    iovekkk  
       2021-06-04 15:37:16 +08:00
    没有文档算什么
    我现在去紧急支援一个项目
    这个项目有六七百个 bug 要修复
    但是我没有测试车机去运行调试代码
    然后跟我说要我尽快熟悉,把修 bug 的速度提上去
    kamal
        37
    kamal  
       2021-06-04 16:12:45 +08:00
    @iovekkk #36 在线调试,可刺激了
    yhyh
        38
    yhyh  
       2021-06-04 16:45:22 +08:00
    这不就是我吗,淦。特么的 人都要抑郁了
    Peikon
        39
    Peikon  
       2021-06-04 16:53:12 +08:00
    更难的是 对没有文档没有人会的老代码进行重构
    taowen
        40
    taowen  
       2021-06-04 17:05:56 +08:00
    https://mp.weixin.qq.com/s/UtBkJYpQHIvRQ_AQnzxxMw 如何不 Review 每一行代码,同时保持代码不被写乱?
    JRay
        41
    JRay  
       2021-06-04 17:39:50 +08:00
    曾经在几个公司这么干过
    baba233
        42
    baba233  
       2021-06-04 18:03:51 +08:00
    @zhongjun96 能看懂也是个人才
    chaleaoch
        43
    chaleaoch  
       2021-06-04 22:35:42 +08:00
    Java 牛逼的地方就在这里啊...
    如果是用 python 写的够你喝一壶的.
    hyqCrystal
        44
    hyqCrystal  
       2021-06-04 22:36:29 +08:00
    没文档 没注释 4700 行的 service 代码 加新功能 重构
    noyidoit
        45
    noyidoit  
       2021-06-04 23:49:56 +08:00
    最近就在做这种活。。。领导叫我边看代码边写文档
    learningman
        46
    learningman  
       2021-06-05 00:02:13 +08:00 via Android
    不错了,至少你还能用 IDE 写
    碰到只能用 olleydbg 的才是疯
    sugar2101
        47
    sugar2101  
       2021-06-05 01:30:45 +08:00
    某国政府项目,从 77 年开始堆积的屎山,文档是纸质的,轻轻一碰纸就要碎了的那种破旧手册,只能运行在 Solaris 系统上,需要升级添加新功能。做了一年感觉自己铲屎的能力得到了升华
    Addup
        48
    Addup  
       2021-06-05 05:09:11 +08:00
    @hyqCrystal 准备接手一个没文档, 没注释, 一个文件上万行, 整个工程上百个文件的屎山
    xuanbg
        49
    xuanbg  
       2021-06-05 07:03:53 +08:00
    @Addup 你这个充其量只能算是比较臭的大屎堆,还不够资格叫屎山。
    bclerdx
        50
    bclerdx  
       2021-06-05 08:22:41 +08:00 via Android
    @Addup 所以,写任何技术文档资料、注释说明很重要,这样后人好乘凉,避免在某些地方踩坑、犯错及注意的事项。
    darknoll
        51
    darknoll  
    OP
       2021-06-05 10:26:46 +08:00
    @bagel 如果代码写的好,我要啥文档?我都不会发这个帖子
    a719031256
        52
    a719031256  
       2021-06-05 10:39:15 +08:00
    @zjsxwc 项目代码哪有那么多时间去排版代码,反正能跑就行,遇到有注释的代码还好,没注释没实体,入参出参全是 map 的更蛋痛
    hqweay
        53
    hqweay  
       2021-06-05 15:23:38 +08:00
    文档注释很迷惑人啊。我这的文档注释基本没啥参考作用……读 Clean Code,里面说到注释比不上结构良好的代码,这时才体会到里面的意思。一段代码经过了无数人的手,注释没维护过……又或者代码连带注释是前人从别处 CV 过来的……文档同理。嗐。
    uselessVisitor
        54
    uselessVisitor  
       2021-06-05 16:14:21 +08:00
    多写注释。。我习惯写注释,甚至用 link 之类的标明相关的类。。
    LiSrRbE2Mac
        55
    LiSrRbE2Mac  
       2021-06-05 17:00:28 +08:00 via Android
    一份代码多经手几个人,只要有人偷懒,文档和注释就逐渐对不上了
    lululau
        56
    lululau  
       2021-06-05 18:51:03 +08:00 via iPhone
    一般复杂程度的系统,业务代码只要有靠谱的产品需求文档就够了吧
    wobuhuicode
        57
    wobuhuicode  
       2021-06-06 20:05:40 +08:00 via iPhone
    我一般把自己的新功能写到一个新方法里。在这里引入试试,那里引入试试。跑起来没事就行。
    efaun
        58
    efaun  
       2021-06-06 21:08:29 +08:00
    直接进 debug 模式写代码
    taogen
        59
    taogen  
       2021-06-07 16:16:05 +08:00
    @arbit #30
    这样做当然前提要对自己有信心,不然还是按照之前的写法写。比如,对算法,设计模式,代码整洁规范等有一定学习和理解。
    liuky
        60
    liuky  
       2021-06-08 14:54:36 +08:00
    @hyqCrystal 2 万行的 service 都有, 4700 真不是事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3247 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:14 · PVG 21:14 · LAX 05:14 · JFK 08:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.