概述
主要总结平时写代码,做开发遇到问题时,解决的思路和方法。
1. 明确问题
问题类型
概述
如果大脑有个问题类型列表,每次问题来了就可以对照一遍,快速明确问题类型,这样问题范围更窄,更容易解决。下面列举了常见的问题类型。
代码问题
大多数问题都是自己代码有问题,这种问题最常见,debug 调试定位问题,修改代码解决即可。
产品问题
有时候不是代码问题,而是你和产品的理解不一致,又或者产品设计存在逻辑错误。要想避免沟通问题,在前期就多和产品沟通, 自己理解需求后,再次和对方确认。
测试问题
有时候可能是,测试同学造数据错误,自己带来的问题。
前端问题
有时候可能是,前段同学传参错误。
沟通问题
这个也很常见,通过深度沟通,反复确认来避免沟通理解的不一致。
环境问题
有时候代码对了,部署方式也对了,可能就是环境问题。
常见明确(定位)问题方法
概述
很多时候我们第一眼看到的是问题的表象,需要进一步定位找到问题根源,才谈得上怎么去解决他,下面列举了一些定位问题的方法。
日志法
大多组件都有日志,大多业务代码也落了日志,一切从日志信息出发。
由近及远法
先考虑是自己的问题,再延伸到组件,环境等等
排除法
先大胆假设,挑出最可能的点,并进行试错,然后排除这个点,进过不断的排除 ,最后将问题范围逐步缩小,定位到问题。
注释法
注释一部分代码,看问题是否解决,将代码范围逐步缩小(此方法为笨方法,但能解决问题)
源码分析法
很多问题在网上或者官方文档是搜索不到的,你可能是业界第一个遇到的,这个时候打断点看源码,能将问题范围一步步缩小,直到定位到问题根源
做实验法
这个最常见了,做些实验验证自己的猜想。然后逐步排除可疑点。
2. 拆解问题
花式拆解问题,直达问题根源,不要老盯着大问题看, 要把大问题拆解成小问题才好解决,比如下面这些方法:
公式化拆解。比如 SQL执行报错= sql编写错误+ 表结构错误 + 数据错误 等等
做假设,从最可能的地方出发。 再把问题拆成问题树。
用mece穷尽的方式, 把问题拆解到底。
横纵拆解问题, 比如纵向把问题越挖越深, 横向拆出同级别的问题。
3. 借鉴前人
很多问题别人早已解决过,可以去借鉴下,常见的借鉴途径有如下:
Google搜索,百度搜索
官方文档
书籍,极客时间等付费资料
问答社区
问人
总结
一定要先定位清楚问题,再去解决问题,问题不清楚,就去解决,效率极低,方向走偏了,整半天也解决不到。
来源https://my.oschina.net/anuodog/blog/3229073
喜欢 就关注吧,欢迎投稿!
如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/解决技术问题的方法/