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

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

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

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

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

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

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

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

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

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