这篇博文一看就知道是老手写出来的,可以读懂其中的味道,说明也不简单,https://blog.codingnow.com/2018/05/ineffective_debugger.htmlhtml
目前在公司的工做,主要就是修代码,调bug,因此在调试代码方面仍是应该多留意的。今天leader说一个专业名词:单步调试,我一脸懵逼,这样的工做我也作过啊,也是一步步看变量状态,只是作的不够专业罢了,其余的方法如2盯着代码看(code review),3查看输出日志(最原始的大法就是system.out大法,4使用swagger,postman等。linux
接下来就是要注意调试的环境问题。有的程序是一键部署到服务器上面的。若是咱们的程序还调用了其余服务,则须要确保相关的配置文件正确。最方便的状况就是在本地调试了,这样能实时看日志。今天老大就给我示范了两个调bug的经典例子,一个是看log日志文件,在日志文件看到了抛出异常,再回看代码,咱们的代码没有对这类异常进行捕捉,因此业务就出现异常。还有就是在本地经过单步调试发现咱们的swagger输出没有问题,而是相关服务调用个人服务出错,这是从咱们服务的服务输出推断的。服务器
其中在log调试时,向同事问了几个linux命令,挺实用的,好比tail -f file.out:会实时跟踪输出。sed -i '1,100d' file.out:删除文件的指定行,不然不少日志不知道怎么看。暴力删除文件:find / -name *.log | xargs rm -fide
而后就是修改代码的时候,要习惯使用idea中的交户界面操做,这样虽然不及命令行快捷方便,可是命令行输出获得的东西咱们看起来也不方便。在查看文件的diff命令很直观,还有就是咱们能够只提交某个文件的更改,定位相应的文件也很块。还有就是用户的每次提交都会使远程的文件版本向前,在多人协做时,若是你的版本落后于远程版本,就会push失败(这是常常出现的状况),因此要注意先pull一下。post