一、解决问题的整体思路
二、问题的级别
- 熟悉
- 普通
- 陌生
三、如何思考自己遇到的问题
- 熟悉的问题(自己碰到这个问题,而且自己能够解决这个问题)
紧迫:
层次一、快速的形成思路,并且把它做出来。
层次二、按照一般情况来解决它(后面再回来审视代码的时候才做)
一般:
层次一、可以写成可以复用的模块,先把这个问题分成几个子问题,然后创建类图(UML图),用各种类之间的关系,建立类图之间的关系。
层次二、最后如果还有时间,可以思考是否应用某些设计模式能够更好的解决这个问题。
- 普通的问题
情况一:自己能够解决这个问题的一部分,但是有一部分需要查找资料或者是问别人。
情况二:自己以为能够解决这个问题,但是按照自己的思路做出来以后,发现有问题。
对于第一种情况:先把会的那一部分做出来,然后分析不会的那一部分,对于这一部分问题(设置一个预期解决问题的时间,超过预期时间,先把这个问题放一放或者找有经验的人解决),先查找资料,查找资料时,在没有得到自己想要的答案的时 候,要进行广度搜索(从问题的多个方面来搜索这个问题),最后整理自己的资料,看看能不能解决,还是不能解决,先把这个问题记录在案,下次解决。
对于第二种情况:先尽量按照自己的思路来做,到后面发现这样做会有问题,(设置一个预期解决问题的时间,超过预期时间,先把这个问题放一放或者找有经验的人解决)先查找这个问题的原因(通过搜索引擎,或者是数据测试),如果能够用非 常蠢的办法能够解决(时间很紧的情况),那就先解决。之后再思考是不是要换一个思路来解决这个问题。如果还是不能解决,那么就先把这个问题记录在案,以后解决或者问别人。
- 陌生的问题
先搜索资料(多个方位的搜索资料),对这个问题有一个较好的认识,在认识这个问题的基础上面,逐步解决这个问题,在自己还不能完全解决这个问题或者一点都不能解决这个问题的时候,那就要先把这个问题记录在案或者请教别人。
四、搜索资料的几点建议