最近在独立解决开发难题的时候所得到的感悟,现记录下来。
-
问题
在开发时,如果你想独立实现一个之前没做过的功能,比如实现一个组件。这时你是完全没有思路的,常规操作是去参考别人现成的实现方式,但别人的代码是已经迭代了很多遍之后的完整代码,里面的代码量很多,逻辑也相对复杂,所以第一眼看到的时候就觉得要理解的东西好多,根本不知道从哪里开始下手。脑子里一团浆糊,导致迟迟无法开始动手
-
问题分析
- 出现这种情况就是脑子过于贪婪,一次性想要实现的东西太大了,远远超出了自己现有的能力圈,如果不把中间的差距先补上,是根本没法开始的。
-
解决方法
- 而解决方法也很直观明显,就是将问题进行细分(这能够让你看清你要解决的这个问题依赖的条件有哪些?),把问题的难度细分到你现有的能力
努把力就能完成
的程度,然后先去解决这些细分问题中最核心的问题
- 因为最核心问题就像是房屋的基石,你不把基石搭起来,其它更大的问题根本没有解决的土壤,最核心问题被解决后,就相当于搬走了次核心问题面前的挡路石,具备了解决次核心问题的条件后,再去按照这个思路从内往外一层层解决越来越大的问题,保证事情的推进。
- 如果判断是否属于最核心问题?就是看阻碍你前进的原因有哪些,然后一层层往内找更深层的原因,直至找到导致这一切的根源
- 而解决方法也很直观明显,就是将问题进行细分(这能够让你看清你要解决的这个问题依赖的条件有哪些?),把问题的难度细分到你现有的能力
核心思路明确后,来个例子看看具体如何 使用?
举例来说,我想实现一个table组件,正确的做法不是一会儿看到这个功能不错,我想加进来,一会儿看到那个功能真棒,我得去实现。这只会让你顾此失彼,眼高手低。
最开始,你需要先对功能进行细分,如:
细分之后,我就从最小的子节点(最基本的功能)开始去一步步实现。边实现,你解决问题的能力也在增长,然后再去解决更难的问题,这样一步步向上跨台阶。最终也能积累出一份不错的结果。
其实这一整个思想归纳起来,其实也就是古人所说的:“天下难事必作于易,天下大事必作于细。
”
总结来说,要想高效解决问题,其步骤如下
- 细分问题成自己努力后能解决的程度,明确组成部分
- 从最内层问题开始解决
- 重复上述过程,由内往外,一层层解决