V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xianxia
V2EX  ›  问与答

求助!怎么才能保证代码正确性

  •  
  •   xianxia · 2024-04-09 15:37:55 +08:00 · 1484 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人刚毕业,进入了一家二线小公司,最近写公司代码时遇到了一个问题:在编写逻辑链条比较长、较为复杂的代码时,往往难以考虑周全,因此很难保证代码的正确性。

    公司规模比较小,尽管 review 做的比较好,但以自测为主,大多时候仅跑通功能,并没有测试所有情况,较难发现问题,发现时大多已经上线。

    所以想问下各位大佬,有什么工具或者编码思路可以辅助编程,从而减少代码 bug 率呢。

    15 条回复    2024-04-10 11:37:31 +08:00
    chiaf
        1
    chiaf  
       2024-04-09 15:41:28 +08:00
    unit test
    tairan2006
        2
    tairan2006  
       2024-04-09 15:51:58 +08:00
    测试驱动开发
    iOCZS
        3
    iOCZS  
       2024-04-09 16:05:54 +08:00
    没有办法,任何测试都是为了增加开发的信心
    jeodeng
        4
    jeodeng  
       2024-04-09 16:11:15 +08:00   ❤️ 1
    没办法,所以招聘的时候会有工作经验的要求。

    可以学习自己写测试用例,一条一条列出来,再思考有什么漏洞,虽然繁琐,但确实有一定帮助。
    Sawyerhou
        5
    Sawyerhou  
       2024-04-09 16:16:36 +08:00 via Android   ❤️ 1
    直接检查输出,采用三种以上的检验方式,不要增加检查的遍数,增加检验方式数量
    aminobody
        6
    aminobody  
       2024-04-09 16:25:54 +08:00
    fuzzy
    janwarlen
        7
    janwarlen  
       2024-04-09 16:28:21 +08:00
    写单元测试
    yifangtongxing28
        8
    yifangtongxing28  
       2024-04-09 16:31:46 +08:00
    完全凭个人能力,任何制度我觉得都有漏洞
    wenhuibrave
        9
    wenhuibrave  
       2024-04-09 16:51:54 +08:00   ❤️ 1
    画流程图,对照着流程图,确保不要遗漏一个分支
    ZhuWenJian
        10
    ZhuWenJian  
       2024-04-09 17:00:35 +08:00   ❤️ 1
    写文档,状态归类,画图:流程图、时序图。
    写测试用例,或让测试提供基础测试用例。

    这玩意基本没法避免,只能靠工作经验踩坑积累。
    pengpeng1
        11
    pengpeng1  
       2024-04-09 17:00:47 +08:00
    考虑周全:erd+erd 评审
    bug 率降低:测试左移,提测之前进行自测,单元测试,自动化测试
    liquid207
        12
    liquid207  
       2024-04-09 17:03:30 +08:00
    1. 写测试,提高代码覆盖率
    2. 引入静态分析工具,能帮忙检查出空指针之类的错误
    Weilence
        13
    Weilence  
       2024-04-09 17:12:34 +08:00
    大函数可以拆成小函数写单元测试。
    纯逻辑处理的函数都比较好些。对于有数据库依赖的这种,要么把查询数据和业务逻辑分开,要么直接 mock orm 或者 mock db 。个人倾向是查询和逻辑分开。
    wpzz
        14
    wpzz  
       2024-04-09 17:15:44 +08:00
    最高效率的就是 AIGC ,在你感觉有问题,但不知道哪里有问题的时候

    丢给 chatgpt ,问它有没有可能出现的 bug
    audiozen3001
        15
    audiozen3001  
       2024-04-10 11:37:31 +08:00
    目前为止写单元测试对很多开发来说都是一个挑战,先不说工作量
    很多代码是不具备可测试性的,不知道各位怎么理解单元测试的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5527 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:24 · PVG 14:24 · LAX 23:24 · JFK 02:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.