解决技术问题的方法

概述

主要总结平时写代码,做开发遇到问题时,解决的思路和方法。

1. 明确问题

问题类型

概述

如果大脑有个问题类型列表,每次问题来了就可以对照一遍,快速明确问题类型,这样问题范围更窄,更容易解决。下面列举了常见的问题类型。

代码问题

大多数问题都是自己代码有问题,这种问题最常见,debug 调试定位问题,修改代码解决即可。

产品问题

有时候不是代码问题,而是你和产品的理解不一致,又或者产品设计存在逻辑错误。要想避免沟通问题,在前期就多和产品沟通, 自己理解需求后,再次和对方确认。

测试问题

有时候可能是,测试同学造数据错误,自己带来的问题。

前端问题

有时候可能是,前段同学传参错误。

沟通问题

这个也很常见,通过深度沟通,反复确认来避免沟通理解的不一致。

环境问题

有时候代码对了,部署方式也对了,可能就是环境问题。

常见明确(定位)问题方法

概述

很多时候我们第一眼看到的是问题的表象,需要进一步定位找到问题根源,才谈得上怎么去解决他,下面列举了一些定位问题的方法。

日志法

大多组件都有日志,大多业务代码也落了日志,一切从日志信息出发。

由近及远法

先考虑是自己的问题,再延伸到组件,环境等等

排除法

先大胆假设,挑出最可能的点,并进行试错,然后排除这个点,进过不断的排除 ,最后将问题范围逐步缩小,定位到问题。

注释法

注释一部分代码,看问题是否解决,将代码范围逐步缩小(此方法为笨方法,但能解决问题)

源码分析法

很多问题在网上或者官方文档是搜索不到的,你可能是业界第一个遇到的,这个时候打断点看源码,能将问题范围一步步缩小,直到定位到问题根源

做实验法

这个最常见了,做些实验验证自己的猜想。然后逐步排除可疑点。

2. 拆解问题

花式拆解问题,直达问题根源,不要老盯着大问题看, 要把大问题拆解成小问题才好解决,比如下面这些方法:

  • 公式化拆解。比如 SQL执行报错= sql编写错误+ 表结构错误 + 数据错误 等等

  • 做假设,从最可能的地方出发。 再把问题拆成问题树。

  • 用mece穷尽的方式, 把问题拆解到底。

  • 横纵拆解问题, 比如纵向把问题越挖越深, 横向拆出同级别的问题。

3. 借鉴前人

很多问题别人早已解决过,可以去借鉴下,常见的借鉴途径有如下:

  • Google搜索,百度搜索

  • 官方文档

  • 书籍,极客时间等付费资料

  • 问答社区

  • 问人

总结

一定要先定位清楚问题,再去解决问题,问题不清楚,就去解决,效率极低,方向走偏了,整半天也解决不到。

来源https://my.oschina.net/anuodog/blog/3229073

                        喜欢 就关注吧,欢迎投稿!

本网站文章均为原创内容,并可随意转载,但请标明本文链接
如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/解决技术问题的方法/

此条目发表在Android分类目录。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。