当前位置: 首页 > 科技观察

您是编写可调试代码的程序员吗?

时间:2023-03-16 13:12:00 科技观察

所有程序都可以以某种形式记录下来,这样我们就可以知道我们现在在做什么。而一旦出现异常,其重要性就更加明显。我们之所以把程序员分成三六九等,很大的一个原因是,优秀的程序员会写日志和调试工具,这样当程序出现问题时,他可以调试程序。如果程序运行良好,那么是否写入日志可能没有太大区别。但是,不怕一万,就怕不测。万一程序崩溃或产生错误的结果,那么程序员将立即相互竞争。示例1:“让我们先制作一个调试版本。”例如,一个测试人员来告诉我一个函数调用不起作用。我们首先查看了日志,发现原因可能是相邻模块。调用此模块会返回一串空值。当我们查阅相邻模块的日志并重新运行测试时,我们没有得到任何有用的信息。不知道为什么返回null-不知道参数是否错误,或者外部系统有故障,或者相邻模块中有错误,谁知道呢?当我们去咨询负责这段代码的开发人员时,他们的回答是:“这个好办,先做一个调试版吧。”往往到最后都不行!因为我们不知道出了什么问题,出了什么问题。如果它已经在生产中,添加调试版本意味着更多的额外工作。代码日志必须包含足够的信息,以便一旦出现问题我们可以找到解决问题的关键。例子2:告诉我应该怎么做我们产品的一个作用是找到最便宜的SMS(短信)方式,并将路由传达给相应的手机。由于现在手机所在的位置和用户所属的运营商,理论上有很多很多可能的路径,每条路径都有一定的成本和相应的优缺点。此外,还会有各种事故导致某些路径不得不被禁止或权重更高。系统搜索通过给定约束的最佳路径并将其返回给SMS。现在,假设一条消息建议使用路由A发送,但我们认为路由B更好,那么路由A是如何选择的呢?如果没有日志数据,光看可能的几百行,看他们的成本和复杂的算法,我想我会发疯的。好在日志中给出了选择路径A的原因。感谢上帝!日志包含所有可能的路线,按成本排序。即使是因条件限制而被淘汰的路由,也会在日志中列出淘汰原因。总之,在日志中,把所有的信息如何输入算法得出结论的步骤都描述的很清楚,这样我们就可以知道为什么要选择相应的路径了。为什么不想编写可调试代码?既然好处这么大,为什么不是所有的程序员都愿意编写可调试的代码呢?原因有以下三点:1、你必须有足够的自知之明,才能在程序异常的情况下进行识别。然而,很多程序员往往需要很长时间才能明白“我不是世界上最好的”。2.彻底测试代码,确保其在各种场景下都能正常工作。而且每一个场景都要写日志。不都测试一下,怎么知道在哪里添加记录。3.许多程序员经常无法不断改进他们的代码。如果在现场演示的过程中系统出现了问题,但是在日志中看不到原因,那么最好在日志中加点东西,以防下次再出现类似的情况。你的代码可调试吗?当然会有这样的情况,就是日志写的很好,但是你还是不知道问题的关键原因。此时,您可能仍需要创建调试版本。但是您的日志至少应该提供问题的线索。***,请问大家,你们的代码是可调试的吗?当代码出现问题时,您的日志能告诉您发生了什么吗?