工作多年以后,你们写复杂逻辑出的 Bug 还多吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaotianhu
V2EX    职场话题

工作多年以后,你们写复杂逻辑出的 Bug 还多吗

  •  
  •   xiaotianhu 2024-06-07 15:24:46 +08:00 3051 次点击
    这是一个创建于 490 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT ,有什么减少 bug 的方式可以介绍下么。
    写复杂逻辑(非 RUD )还是比较容易出 bug 。
    先写 test case 我也知道,但是复杂逻辑的 test 也不是很好写诶。
    14 条回复    2024-06-10 09:39:37 +08:00
    kiracyan
        1
    kiracyan  
       2024-06-07 15:55:00 +08:00
    业务多年后出 BUG ,大多数是因为业务需求的变化导致的。
    kiracyan
        2
    kiracyan  
       2024-06-07 15:56:04 +08:00
    复杂逻辑也要 test case ,这是测试要考虑的事情了
    oldcaptain666
        3
    oldcaptain666  
       2024-06-07 15:57:04 +08:00   1
    笑死,前端搬砖工根本没有什么复杂逻辑
    asLw0P981N0M0TCC
        4
    asLw0P981N0M0TCC  
       2024-06-07 16:10:01 +08:00
    有什么减少 bug 的方式可以介绍下么。
    ---测试哇
    ShrinkLynn
        5
    ShrinkLynn  
       2024-06-07 16:21:10 +08:00
    上次我们 UI 问我为啥她提了个修改我一分钟就改好了,我告诉她,我提前预判了你要改这边 .. 笑死
    treblex
        6
    treblex  
       2024-06-07 17:39:48 +08:00
    @oldcaptain666 后端:来了哦,别急
    shawnsh
        7
    shawnsh  
       2024-06-07 21:04:02 +08:00 via Android   1
    bug 原因不是有个饼图统计结果吗,其中占大头的有需求理解不清晰,设计问题,编码问题。复杂逻辑根本在于不是十分清楚需求,设计上不能很好降低复杂度。
    NNS71L068O2v70DB
        8
    NNS71L068O2v70DB  
       2024-06-08 12:09:46 +08:00
    开发之前规约看一下,每条规约后面都是一个个血淋淋的教训
    JoeDH
        9
    JoeDH  
       2024-06-09 03:03:30 +08:00
    我开发的那些破系统,还真没啥复杂逻辑
    shapper
        10
    shapper  
       2024-06-09 09:52:41 +08:00
    复杂逻辑分成一坨一坨的小逻辑(就是拿一坨一坨的 if-else )
    namonai
        11
    namonai  
       2024-06-09 15:52:16 +08:00
    从理论上来说,计算机系统可以抽象分层为:
    1. 需求
    2. 算法
    3. 高级语言实现
    4. 汇编码/机器码
    5. 硬件实现

    这中间的任何一层转化错误都会导致程序的正确性出现问题。而写业务逻辑的程序员可以把控只有需求->算法与算法->高级语言实现,有的时候是算法无法 cover 需求,有的时候是算法的实现出现了问题。但是更多的时候,抽象出需求这一步本身就有可能出现问题。所以要少写 bug ,第一步是要清楚自己需要做什么,事无巨细方方面面考虑到。
    ccde8259
        12
    ccde8259  
       2024-06-09 20:34:14 +08:00
    多,所以不写复杂逻辑……
    接需求的时候,最重要的一步动作就是怎么把这个实现做拆解……拆解成一堆 stupid simple 的事情去实现,然后对这些实现进行一个个组装的动作……
    如果你的实现不能做到 stupid simple ,叠加各种代码交接和新的逻辑加入,那最终一定有一天这个实现就会失控从而被重构。
    xavierchow
        13
    xavierchow  
       2024-06-09 21:36:46 +08:00
    同意 12 楼,尽量不写复杂逻辑,if-else 也尽量少用,多用 composition 和 polymophism 。
    编码层面可以尽量用抽象的思维隔离开通用和特殊的处理,
    业务层面可以让产品经理或者架构设计师尽量把复杂逻辑捋清楚或者简化/统一化,最佳实践是拿着测试 case/code 和 产品对一对。
    changyou8
        14
    changyou8  
       2024-06-10 09:39:37 +08:00
    bug 大部分是不懂技术的产品设计的不合理需求导致的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5789 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 06:38 PVG 14:38 LAX 23:38 JFK 02:38
    Do have faith in what you're doing.
    ubao 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