File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -11,13 +11,13 @@ Debug 调试技巧
11
11
一开始的负责会为以后协作和维护带来极大便利(当然你想干两天就走让其他人擦屁股就当我没说)。
12
12
最后,很多东西我也在摸索,上面的玩意你就当小白的踩坑记录,随着理解和经验的加深我会不定期更新本篇内容。另外我发现网上大部分是教程性的东西,对于python相关的工程性的东西很少,我很疑惑难道大部分公司的python项目都写得相当规范?没人吐槽?反正我是踩过坑,希望看到过本章的人能把python代码质量重视起来。
13
13
14
- 如何定位和修复 bug:复现和定位, 大胆假设,小心求证。定位需要找到 bug 出现时候的上下文信息,可以用 log,sentry,kibana 日志系统等查看。确认之后通过走查代码、断点调试等方式寻找代码逻辑错误。
14
+ 如何定位和修复 bug:复现->定位->修复->验证->复盘。 大胆假设,小心求证;思路不通,换个角度 。定位需要找到 bug 出现时候的上下文信息,可以用 log,sentry,kibana 日志系统等查看。确认之后通过走查代码、断点调试等方式寻找代码逻辑错误。
15
15
16
16
- 第一步是复现,偶尔才复现的代码是很难排查错误的。如果不好复现但是有 sentry 之类的记录工具也是极好的,sentry 会记录当前栈信息和变量信息,非常有利于排错。
17
17
- 走查代码。使用 pylint 等静态检测工具排除低级错误(你应该把它集成到开发工具里)。
18
18
- 看提交日志。最近代码的修改记录,是否是别人的代码引入了 bug。是否可以回滚到上一个可用部署解决呢?(注意一旦一个新的上线出问题,应该先回滚部署而不是回滚代码)
19
19
- 看日志,各种日志(logging, nginx),看 sentry 异常信息。很多框架或者工具都有 debug 模式,打开 debug 模式可以获取到更多有用信息(但是要注意线上慎用 debug 级别日志)
20
- - 加日志。如果已有的日志没能排查出来关键信息,可以适当增加 debug 日志记录更充分的数据。比如关键函数的输入和输出,关键rpc调用/数据库查询/第三方库调用的输入和输出等 。
20
+ - 加日志。如果已有的日志没能排查出来关键信息,可以适当增加 debug 日志记录更充分的数据。比如关键函数的输入和输出,关键rpc调用/数据库查询/第三方库调用/重要数据结构的输入和输出等 。
21
21
- 问同事,问源码作者(脸皮要厚),让同事帮忙 review 审查代码。有时候人有思维定势,你自己看不出来的别人可能一眼就看出来了。
22
22
- 借助搜索引擎。很多问题 google/stackoverflow/github 上都可以搜到,善用搜索引擎解决问题。
23
23
- 小黄鸭调试法,桌子上放个小黄鸭(小黄鸡儿也行),然后尝试从头到尾给它讲解有问题的代码段,说不定就在你给它代码描述过程中发现了问题。
You can’t perform that action at this time.
0 commit comments