改Bug的经验
如果修复某个Bug花了很长时间,这时候就要问问自己为什么,怎么做才吸取经验教训,在类似的问题上不再出问题,以及采用的方法,使用的工具是否还有改进的地方;
当所有问题都解决之后,一定要梳理下从最初找Bug到最后改Bug的整个过程
定位Bug#
- 模拟Bug场景:想想什么样的代码才能导致该Bug
- 二分法:代码一分为二,每次判断Bug在前面一段还是后面一段
- 使用调试工具:IDEA中打断点(多线程断点需要设置suspend为Thread,否则只能串行调试)
- 极限测试:用足够多的测试机,设置不同的极限条件进行测试,观察测试结果有什么规律
- 小黄鸭调试法:如果已经知道某段代码大概有问题,就可以找个对象(拿个小黄鸭放桌子上-_-)把这段代码对它一行一行的解释,甚至为什么这个地方用数组也要讲清楚。相当于用一种自言自语的方式,自发的梳理问题代码的逻辑,以解决问题。
修复Bug#
需要注意,在修复之前要理解代码,保证你的操作不会影响到其他部分,不然很容易制造新的Bug
重构#
重构是使一些列手法,在不改变最终运行结果的前提下调整
- 看整体:检查Bug是否会影响其他支线,回顾所有审查及测试工作,检查整个系统的合并及最终运行情况。最佳的方式是补充所有功能点的测试案例
- 改细节:一步一步的重构(复杂代码也可优化结构,使代码更易于理解)
- review之前的review:在提交之前,找别人帮你review一下真个修复过程,看看方案是否完善,有没有更好的建议
作者:daydreamer-fs
出处:https://www.cnblogs.com/daydreamer-fs/p/16750057.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!