程序员在百度查不到的bug,你们是咋处理的?
程序员在百度查不到的bug,你们是咋处理的?
About
1.假设这里百度泛指网络搜索引擎。
2.要划分清楚两种类型:自己写的代码还是别人写的代码。
2.1如果是第一种的话,我推荐使用二分和日志记录等等。
对于断点法的话,如果项目比较小的话,也许还行,虽然也会看着很头疼。我个人还是喜欢日志记录的方法,把相关变量和中间状态输出,看一下是哪里出现了问题。
2.2而如果是别人的代码,那么问题就麻烦了。例如你使用别人的框架sagemath等等,教程比较少,而且本身框架又在快速更新。
首先查看是否开源,如果开源的话,你可以去issue区查看一下是否有相关关键词。如果这一步还不行的话,而且还不能换框架的话,那你只能硬着头皮翻项目源码了(如果敲代码多的话,就会发现大型开源项目里面的bug一点也不少)。
然后就是搜索代码里面有没有类似的代码关键词或者相近示例代码,查看一下有什么不同。
如果示例代码可以成功运行,你就要检查两者不一致的地方,是不是有自己没注意到的地方。如果有许多不一样的地方,且还是认为都没有问题,你可以尝试对示例代码改造,逐步增加或者移除,然后变成自己的代码。往往这一步就可以找到决定性的那一部分BUG代码。
如果没有示例代码,你就得查找你所需要的函数在源码中怎么定义的。一般在这一步就可以找到详细的接口定义。github已经完成了对项目的静态引擎搜索,你可以尝试跳转一下看看源头怎么定义的。
祝你好运!