前言
debug的重要性不言而喻,为啥是必备技能三,还有两个技能是啥?
就像《林海雪原》中杨子荣上威虎山“过坎子”一样,初级java开发必备的三个技能,分别是:git、maven、debug (svn,gradle杠精走开)
第一关,熟练使用git。不会git,项目不能下载、提交,那还玩个屁,出师未捷身先死
第二关,熟练使用maven。项目下载下来后,要让你的项目跑起来,项目跑不起来,或者在别人的帮助下才勉强跑起来,都是不行的
第三关,项目跑起来,leader为了让你尽快熟悉项目,可能会让你改一些简单的bug,如果不会debug,卒
git和maven的使用传送门:
git使用
maven项目启动
借用《林海雪原》中的话
“三关全过是贵人,通过两关是客人,通过一关请走人,一关未过是死人”
开个玩笑,主要是为了说明这三个技能的重要性
多说一句,debug指的是代码调试,小白扫盲,后面不再解释
言归正传
1.准备工作
目前实际项目多是前后端分离,所以调试接口时看不到页面,怎样调试接口?
这里有两个接口请求工具,Advanced REST client、postman
Advanced REST client和postman的区别和联系
Advanced REST client的安装请点击
Advanced REST client:轻量级,google浏览器插件,功能相对postman弱
postman:需要下载到本地,解压安装,功能很细,相对较重
2.debug过程
2.1.获取接口信息
包括找到调用的是哪个接口,接口的请求方式(get/post),接口的参数信息三个方面,测试环境,Google浏览器F12,打开调试模式,查看接口请求信息
2.2.使用工具模拟请求(以postman为例)
将刚才2.1中获取到的接口url,请求方式,参数写入postman中,模拟请求
2.3.debug模式启动项目
一定要debug模式启动,否则看不到断点,无法调试
2.4.调试,找到对应的方法,打断点
通过请求接口url,全局搜索(idea 快捷键:【ctrl+shift+f】),找到代码中controller层中的接口,打断点,使用快捷键调试
最常用的有三个快捷键,F7/F8/F9
F7:进入方法内部
F8:下一行
F9:下一个断点
总结
理论上,只要错误可以复现,一定可以debug出来,因为程序是死的,有问题就一定有问题。事实上,问题只要复现了就已经解决了最少一半
debug难点
有时遇到生产环境的问题,测试环境不能复现,这时你如果对代码很熟悉,根据报错信息知道问题大概在哪,可以直接改,但会有风险,毕竟不能复现就没办法测试;
另外还有两个办法:
一是在测试环境准备数据,复现生产问题;
或者改数据库连接,连生产数据库(有修改生产数据风险,慎重);
版权归原作者 deelless 所有, 如有侵权,请联系我们删除。