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

何时才能逃离写 bug 怪圈

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

    作为一名合格的程序猿,拥有各种奇怪的经历。很久以前为了给 app 加功能,把整个 app 弄崩了,打开就闪退。

    今天下午修了一个 bug ,在测试机上打开发现修的按钮会导致 app 全部卡死。从同事那里复制的代码会报错,在他那里没问题。

    我在想每天花时间做的改进不如不做。以前同事调侃说:又在写 bug 呢?现在想想其实他说的很对。

    好难受,感觉自己真没用,我不想当一个平凡甚至平庸的人。还记得在刚毕业的时候,我总想出人头地,成为行业的大佬,可是现在早已经被生活和 bug 磨平了棱角。

    51 条回复    2023-12-27 14:32:12 +08:00
    nightwitch
        1
    nightwitch  
       123 天前   ❤️ 9
    菜就多练
    kilasuelika
        2
    kilasuelika  
       123 天前 via Android   ❤️ 4
    你只说自己遇到的问题,但是并没有说导致问题的原因是什么。我觉得你可能不是一个爱反思总结的人。
    没有反思总结,那你一定会重复地犯以前的错误。
    yihy8023
        3
    yihy8023  
       123 天前   ❤️ 1
    都被生活磨平了棱角。个人性格有些急躁,总是写完了就赶紧交差,一测试有发现好几个 bug ,又赶紧改。不过干的久了后,发现沉下心写,多检查和测试遇到的问题就少了很多,效率也高了。再说 bug 也是我们的经验,类似问题我们可以提前规避和迅速解决。
    purringpal
        4
    purringpal  
       123 天前 via iPhone   ❤️ 1
    你第一句话就说明了所有问题,这算哪门子合格呀朋友,多学多思考多检查。不要总是觉得错的不是我,是世界。
    cdwyd
        5
    cdwyd  
       123 天前 via Android   ❤️ 1
    有些人不适合干这行

    合格的程序员会考虑各种边界条件确保程序能正常运行,但是很多程序员只保证能在自己机器上勉强跑起来。
    Sigrdirfa
        6
    Sigrdirfa  
       123 天前 via Android
    今天加班调一个乱码的问题,我作为转发层为公网用户提供转发到内网,外围调用必需 GBK 编码,我的返回体配制响应头字符集 GBK ,正常返回响应体乱码,可是我抛出去的异常拦截的返回体手动塞 code 和 message 就没问题,查了一晚上问题,甚至把前同事的代码 cv 过来还是有这个问题...搞到 1 点,突然就觉得自己是个废物了。
    Angela2022
        7
    Angela2022  
       123 天前
    这个是智商决定的, 没办法的
    xuanbg
        8
    xuanbg  
       123 天前   ❤️ 1
    复制的代码跑不起来这一点属实让我有点顶不住,就这还是合格程序员啊,复制-粘贴都不会。。。
    zifeimao
        9
    zifeimao  
       123 天前   ❤️ 1
    唯手熟尔。
    bytesfold
        10
    bytesfold  
       123 天前 via iPhone   ❤️ 1
    硬刚不如休息一个小时,休息好了再排查可能一下就好了;
    不行就再做别的先。
    lsy6
        11
    lsy6  
       123 天前
    @cdwyd 这是初级和高级的区别
    musi
        12
    musi  
       123 天前
    bug 不是个人都写吗?楼上所有人我就不信有人写代码没写过一个 bug 的
    vsitebon
        13
    vsitebon  
       123 天前
    如果是架构上的 bug ,就从学习优秀架构入手;如果只是某个功能函数没有考虑到边际情况导致的 bug ,我觉得是无法避免的,因为从设计之初就能完美实现某个特殊功能的,一般不存在,只能提高找 bug 的速度和写单测的速度了
    SinceJune
        14
    SinceJune  
       123 天前
    @lsy6 这不是区别,这就是合适不合适,事实就是大多数程序员不合格。一些基本素养不具备
    gbw1992
        15
    gbw1992  
       123 天前
    不写 bug 是不可能的,谁都不可能,但是这有个程度
    像你这种 “把整个 app 弄崩了” 的操作,如果不是新手
    会给人一种这个人不负责任,不靠谱的感觉

    程序员有种假象,总感觉自己行,动不动就重构
    就算之前是堆 shit ,读懂了么,就开始屎上雕花了
    ChenSino
        16
    ChenSino  
       123 天前
    bug 都不写了你是准备被优化掉吗
    newaccount
        17
    newaccount  
       123 天前
    说啥呢?说啥呐!什么 bug ?!那叫 feature !再说了,在我机器上跑的好好地咋没事呢!?
    JavenXiao
        18
    JavenXiao  
       123 天前   ❤️ 2
    如果写出的代码无法向小黄鸭解释清楚,说明自己写的就很潦草。
    如果能向小黄鸭解释清楚,但还是出问题了,说明你的知识点有漏洞。
    如果没有漏洞,也能解释清楚,但就是解释很累,过两天自己都忘了,说明你可能需要上点儿设计模式,来让代码组织得更加科学。
    ydpro
        19
    ydpro  
       123 天前   ❤️ 1
    你不是被磨平了棱角,你是被 pua 傻了,写代码怎么能不会出现 bug
    Vegetable
        20
    Vegetable  
       123 天前
    一个系统是否容易出 BUG 是具有惯性的,并不是个人意志能够完全控制的。好的系统避免 BUG 可能只需要 30%的经历,颇的系统需要 300%。所以自己总出 BUG 并不一定是你的问题。
    150530
        21
    150530  
       123 天前
    @bytesfold 深有体会,硬刚了几个小时都搞不出来,出去吃个饭或者第二天随便一弄就解决了,当一个事情一直解决不了就会急躁,越急躁大脑就越不灵活思考问题太局限
    go522000
        22
    go522000  
       123 天前
    写 BUG 很正常。自己写完要测试下,然后在发布前测试人员也多测试。
    silencil
        23
    silencil  
       123 天前
    复制粘贴不好评,从来不复制项目中别人的业务代码。工具代码或者比较复杂的代码会从搜索引擎得来的结果进行复制,见过同事原封不动的复制代码,说功能是一样的,并不是说复制这个动作不可行,而是因为没有经过自己的大脑,这段代码粘贴过去很可能其中的一些逻辑和运行环境就不一样了,更重要的是「粘贴的代码,你很难一次性全改对,很多时候可能就一个参数或者变量名没改对,找半天找不到」。
    taxue67marx
        24
    taxue67marx  
       123 天前
    首先,在复制同事的代码时,可能是因为环境和依赖版本不同导致出现的问题。我的建议是,不要直接复制粘贴代码,而是要理解这段代码的原理,按照自己的理解和实际项目情况进行修改。
    exmario
        25
    exmario  
       123 天前
    全世界的程序员没有人敢说自己写的东西 100%完全没有 bug 的,只要是人就会犯错误

    有问题修复问题就可以了
    whoosy
        26
    whoosy  
       123 天前
    水平问题
    qsnow6
        27
    qsnow6  
       123 天前
    确实没有 100%不出 Bug 的软件,但是一个 Bug 反复出现,到处是 Bug 崩溃,这就是能力不足,没啥好解释的。

    Windows 11 设计的美仑美奂,但是一堆 Bug ,不影响“质量拉垮”这个评价。
    Masoud2023
        28
    Masoud2023  
       123 天前
    “从同事那里复制的代码会报错”你要不要反思一下为什么要从同事那里复制代码而不是你自己写?
    iblessyou
        29
    iblessyou  
       123 天前
    @purringpal 确实,这话像 moba 游戏里低段位玩家开口常说的“我不坑,经常遇到 XX 队友/这段位太坑……所以上不去。”
    楼主这看情况,是提交前就这样了就正常,提交后了经常出问题那是真不合格了。
    tangtang369
        30
    tangtang369  
       123 天前
    多加练习 养成良好习惯 多加注释 逻辑稍微复杂 先画图再写代码
    我工作遇到过好几个这样的同事,简直是 bug 制造机器,其实都是些很小的问题,不是啥严重错误,这种小 bug 每隔一小段时间都会上演,场景如下:“我这又出了点 bug ,代码肯定是没问题的,是不是这个机器有问题,我合并前测试过了,你帮我看看,然后给他分析他代码逻辑,就是我已经知道哪里错了,我自己改下就行”
    iyiluo
        31
    iyiluo  
       123 天前
    bug 这么多,一看就没写单元测试,每天花点时间写单元测试,bug 能减少很多
    Nich0la5
        32
    Nich0la5  
       123 天前
    多写单测,很多人意识不到单测有多重要,一个覆盖完善的单测可以提醒你之前做的都是什么功能,边界在哪里,重构的时候有单测就能随便改了反正能立刻发现问题
    FantaMole
        33
    FantaMole  
       123 天前   ❤️ 2
    “在我的电脑上可以”
    “你是不是改了什么”
    “这个昨天还是正常的”
    “这个你先刷新一下试试”
    “肯定是你网络的问题”
    “程序没问题,肯定是你改什么了”
    “这个问题以前就有”
    “这次肯定没问题”
    Belmode
        34
    Belmode  
       123 天前
    避免不了不产生 BUG ,及时调整心态,丰富自己的个人能力,BUG 自然会减少~
    kneo
        35
    kneo  
       123 天前 via Android
    能力问题,这也怪生活?我还想当超人呢,怪生活磨平了我的腹肌。
    purringpal
        36
    purringpal  
       123 天前
    楼上无脑圣母心的朋友们,如果只是工作中日常 bug ,哪有同事敢对你骑脸输出:“又在写 bug 呢” ???

    吸取建设性意见,走出新手村就好了。
    godqueue
        37
    godqueue  
       123 天前
    写代码前先想好怎么测试他,测试都没想好。。写什么代码。。
    isnullstring
        38
    isnullstring  
       123 天前
    合格的程序猿是不会怀疑自己没用
    LevineChen
        39
    LevineChen  
       123 天前
    楼主不要绝望, 这不是什么怪圈, 单纯的水平问题. 菜就多练练
    nbhaohao
        40
    nbhaohao  
       123 天前
    与其在这边矫情, 不如多去看看项目代码. 只要人活着就会犯错, 写 bug 太正常了, 虚心接受, 把这个 bug 搞懂, 下次不再犯就好了, 而不是做一些祈祷或者抱怨.
    24Arise
        41
    24Arise  
       123 天前
    当 bug 花很长时间解决不了时,我会歇一歇或者去处理其他事情,然后在空隙去想原理,很多时候就突然有灵感了,这种时候屡试不爽,OP 可以试试 ~
    MaxFang
        42
    MaxFang  
       123 天前
    出 bug 修就好了,不断总结经验。最怕那种写代码一点不思考(有的真的一点不想的),也不知道总结的。
    同时要对业务有敏感。
    iOCZS
        43
    iOCZS  
       123 天前
    代码是否有 bug ,取决于人的意志。越是专注,就越能考虑到可能的状况。
    gsy20050126
        44
    gsy20050126  
    OP
       123 天前
    @nightwitch 中肯的,谢谢你的建议
    yuruizhe
        45
    yuruizhe  
       122 天前
    打开 app 就闪退。。。你们没有 qa 的吗,端上发版得人肉回归肉眼验证才行吧。。。
    auh
        46
    auh  
       122 天前
    出 bug 是正常的。不出 bug ,才是反常的。
    junmoxiao
        47
    junmoxiao  
       122 天前
    写测试,能极大增强对代码的信心
    cnbatch
        48
    cnbatch  
       122 天前
    写出 bug 一点都不奇怪。把 bug 找出来修复掉就是了。

    最烦的是一套代码多平台使用的情况,其中一个平台一切正常,换了另一个平台就总是出 bug ,这才折磨人。并且这不完全算是水平问题,更多的是经验问题。所以只能多写、多调试、多积累经验。
    litchinn
        49
    litchinn  
       122 天前
    写 bug 才是常态,你要做的是发现问题,定位问题,解决问题,发现问题靠测试,定位问题靠调试,解决问题靠尝试,这其实适用于大多数工程行业
    jones2000
        50
    jones2000  
       122 天前
    改老代码,必须要有测试用例, 代码改完以后, 测试用例跑一遍, 没问题就 ok 了。
    Promtheus
        51
    Promtheus  
       122 天前
    其实很多玄学的问题之所以看着玄,就是因为自己太菜了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2903 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:30 · PVG 20:30 · LAX 05:30 · JFK 08:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.