Java解决bug思路【总结版】

245 阅读3分钟

我们在开发的过程中会存在各种各样的bug,包括但不限于数据出错(偏大或偏小的异常),数据返回null,拒绝访问,内存溢出,Exception常见错误,web访问页面报错,条件筛选失效,数据库加载报错。。。。等等以上只是举例,bug种类多,解决bug也是程序员成长的必要过程。

系统提示你哪里出错了,那很好,针对性的修改
最可怕的是没有抛出错误的bug,这时你要到处思考,是web?还是逻辑?还是数据库?还是缓存?还是什么。。。

有的时候测试环境正常OK,正式环境就出现各种问题,如sql问题,内存溢出,所以测试环境要尽量模拟正式环境,数据量一定要大些,这样正式环境出错的概率越少

springboot解决bug思路
通常使用两种方式查看
debug 和 日志

新手可以一层一层去演绎,当你熟练以后解决bug的时间会缩短
资源、条件、变量

web----->controller---->service—>dao---->redis、mysql或其他数据库
业务复杂师,可能有多个service,多个dao

MVC模型

IO输入了什么?预期输出什么?

APP在APP输入了什么
web端在web输入了什么

server提供了什么服务

数据dao,数据是否有出入,查询语句对了嘛

输出了什么

所有业务无非CRUD,在解决bug时,不妨深入理解CRUD,深入理解业务需要去干嘛

阶段性反思202105

程序员不懂业务,不必着急写程序

走不通的代码还是看日志

不懂的表结构属性慎用,sql语句容易导致数据出错

平时不妨做一些糟糕情况的判定,如与预期出现偏差的时候,不妨不调用缓存,直接调用缓存在清除缓存看起来不是那么明智

慎用多表查询

业务越复杂,数据越多的时候,无条件的查询,或者未采用有效条件制约,容易出现失控的结果:如内存溢出

别人的代码不一定是最佳,如果不懂别人的代码,只会套用的话,往往带来更大的错误,这种错误常常带来根本性的,并且越难发现

IO流,你想要输入什么?预期得到什么?

CRUD是基础,如果跳出CRUD思考问题会走的更远

从质疑自己的代码和别人的代码开始学习,从解决bug开始学习

用new一个对象取代null可防止空指针异常

代码解耦性很重要,而不是放在同一条船上,一个问题出现,影响所有关联的属性,这种维护看起来是费力的

文章知识点与官方知识档案匹配,可进一步学习相关知识

本文使用 文章同步助手 同步