- 深刻理解问题的现象
比如程序错误, 要深刻理解报错信息, 要深刻理解日志信息 - 可能性原因测试, 单一变量法
根据自己的知识, 列出会导致该问题的可能原因, 一一进行测试; 找到问题后, 将该问题理解透彻, 并记录到知识库中. - 排除法, 控制变量法
该方法同上相似, 进行排除测试, 排除掉各种可能影响的因素. 并缩小问题的范围
排除法:将程序划分为多个实现模块,然后逐个进行单元测试(或者逐个注释各模块),从而逐个排除运行正常的模块,最终找到运行异常的模块;再用此方法逐渐缩小范围,最终找到问题点。(该方法除普遍适用外,特别适用于多线程编程) - 原理
从源头出发, 先弄明白是什么地方出现的问题, 并缩小范围, 具体到某一事物上(比如某个程序, 某段代码, 某个设计模式)等, 然后静下心来, 细细研究这个事物的原理, 主要研究同问题相关的内容, 有所领悟后, 在尝试1,2两种方法, 还是不行, 在回到当前步骤, 继续研究, 知道问题解决.
注意:
其中非常重要的是: 准确简短描述问题 注意细节 切勿急躁
搜索路径: 文档(开发文档, 数据手册, 官方文档, 官方资料, README, Document, *.html, samples, example), 百度, 谷歌, 论坛, 技术交流平台(CSDN/stackoverflow), 相关技术人员聚集地(例如:百度贴吧), 源代码管理平台(Github)
咨询路径: 官方客服, 官方论坛, 相关技术服务商, 讨论群组, 技术交流平台(CSDN)提问