简单问题解决思路
2015-01-19 19:51
465 查看
根据上面的分析,大概总结出来几点
1.80%左右的问题或bug往往是在不可调试的环境下(生产环境)
2.解决问题最笨的方式应该就是调试了。(而且往往问题不可调试)
3.一位童鞋面对bug的反应,一定程度上能反映该童鞋的工作能力。
简单问题解决思路
可调式环境
查看日志
1。良好的代码,肯定都有异常错误日志,问题简单的话,根据日志直接修改即可
2。良好的日志记录规则,可以直接定位到问题,比如参数错误,业务数据为空等等,如果问题简单可以快速的review并解决
3。无法直接看出问题,需要进一步分析
定位问题,确定大致问题原因
1。根据现象,定位问题,如果简单可直接修改
2。根据异常信息,对象不能为null,除数不能为0等,可以直接分析解决问题简单的review修改
3。根据经验,经验丰富的人对一些见过尤其是偏配置的bug能直接给出解决方案
例如:Unable to make the session state request to the session state server,直接将net的状态服务启动即可
4。逐步查找问题
1。界面加载慢,先看是否是页面本身的问题,例如加载了很多第三方脚本没有响应等
2。查看具体的请求是否响应时间较长
3。请求慢查看业务层调用,处理,是否十分复杂或者代码是否有循环中写的不合理等
例如,循环中直接对比xml等不合理操作
4。如果都没有问题,那么就是数据查询的问题了,往往也就是查询的问题
5。分析查询,
1。查询不合理,sql或存储过程写的不合理,大部分情况如此
2。没有合适的索引,造成全表扫描等,大部分情况如此
例,某个查询数据界面很慢,查找之后定位到了存储过程,分析后发现查询有问题,增加相关索引后基本达标
3。分析执行计划,进行相应优化调整
4。数据量庞大,分析业务是否应该返回这么大的数据量,缓存等其他处理措施,往往庞大的数据量是设计或返回数据不合理
5。其他数据问题及相应处理
6。测试问题是否已经解决或达到性能要求
7。如果已经做了所有的优化可能还不能达到要求,重新信息下业务场景,查看是否有其他好的解决办法,寻求帮助等
5。定位到具体页面,到具体方法,甚至到具体某行某句话为下一步做准备
代码review
1。往往比较怪异的bug或根本无法定位问题,这类问题一般需要靠经验,搜索或寻求帮助来解决
比如还是上面那个net状态服务异常停止的bug
2。大致定位后,直接进行详细的代码review,相对容易的bug还是比较容易查出来并解决
一般自己写的代码自己很难review出来,所以多检查两遍
3。实在查不出,并且没有搜索到相关内容,且没有寻求帮助,这时候就可以借助调试监控查找了
调试
1。大致定位方法,断点单步调试,98%的问题基本就能解决
2。还有一类代码明明没有问题,但是调试的时候甚至会报错,这个时候往往就要换个思路,搜索,寻求帮助
1。比如:之前有个问题调试,直接拖动断电,代码完全没有问题,但是就是报异常,(一个IF判断条件都没有错,注释掉就ok),但就是报空引用异常。(现在也没找到原因,可能是由于拖动断点的问题)
2。还有一类是无法调试的,类似于多线程,服务(当然你可以写个winform的相同程序),这时候基本上只能靠日志,分析,查找,寻求帮助
不可调试环境
查看日志
定位问题
代码review
问题的解决方式基本和上面一样,只不过更需要良好日志的支持,代码分析,经验。
相关文章推荐
- 用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路
- 32、最简单的mvc框架tiny,orm、原理图、问题与解决思路
- 解决复杂问题的思路 —— 从简单到复杂
- 滑动冲突问题的简单解决思路
- 最简单的mvc框架tiny,orm、原理图、问题与解决思路
- 简单:解决首页被7939锁定的问题
- 使用一个简单的webframe来解决EAI和分工合作问题
- gsoap客户端中文问题与简单解决办法
- 《Flash Communication Server: 建立一个简单的聊天室》中引用问题的解决
- Tomcat4.0中文问题简单解决方法
- 简单实现AJAX: ASP.NET2.0 中回调的实现及常见问题的解决
- "Visual studio .net 无法创建或打开应用程序" 问题的一个解决思路
- 今天在国外论坛上为别人解决一个简单问题
- Iframe自适应页面高度问题的最简单最适用的解决办法
- 导出Excel的简单方法,并可以解决乱码问题
- 解决i18n的问题有三种经典思路
- 学习.NET遇到的第一个问题。原来解决这么简单
- ajax页面刷新问题的解决思路
- 一个简单的小问题的解决:类图中线变成直的,不能斜了