调试技巧的零星记录
最近公司发起了一个分享调试技巧的活动,正好这个是我自以为良好的方面,所以也在博客中记录一下。
虽然良好的编码习惯可以一定程度上减少bug的发生,但bug依然是程序员必须要面对的问题,这里仅记录bug发生后的事情。
我认为,从被报告bug开始,需要经过如下步骤:
1.确认bug:
a.确认是否确实是bug
b.确认bug类型:需求里的逻辑错误、需求理解错误、设计上的错误、功能性错误、功能表现错误、表现不准确或会误导用户的错误。
2.定位引起bug的地方:
可能是一个或多个文件中的代码引起。一般用排除法定位。
3. 解决bug:
这个没什么好说的,该怎么改就怎么改。
4. 验证:
这一步非常重要,在修复bug后,需要对bug所属功能和可能影响的功能进行测试。这是为了保证bug已被正确修复,且没有产生新的bug。
5. 在你的大脑中缓存该bug:
出bug不可怕,可怕的是多次出现同一个bug。所以请对改过的bug留下印象,特别是那些让你留下过痛苦回忆的bug。所谓的资深,无他,只是犯过的错误比别人多而已。
以上几个步骤中,排除法可以用在每个步骤,简单实用,效果卓越。
此外,平时应该多学习和思考各种技术的底层原理,这能让改bug时事半功倍。
遇到疑难bug时,最好忘记"不可能"这三个字,根据底层原理来思考推敲,往往疑难的bug的根源就在大多数人认为不可能的地方。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了