近期的努力学习,一直希望能突破一个瓶颈,就是熟练工,目前感觉到自己就是一个熟练工,对于工作中所接触到的技术,基本的API都知道,完成工作也比较顺利,按照以前在华为外包做开发的经历,有领导明言,开发就是倒腾一堆API么。我想,开发如果仅仅是倒腾一堆API的话,那么这种工作没有任何意义,因为这一堆API的倒腾最终会实现自动化,就算不能,我们开发人员也只是倒腾API的工具,没有任何价值而言,正因为如此,近期才会有突破这个瓶颈的强烈欲望,希望通过摆脱对工具的依赖,找出技术的本质,达到进一步的提高。
        今天无意间读到林锐博士写的一本书--<<软件工程思想>>,随便翻了一下,看到其中有一段关于软件开发的基本策略,现记录如下。
        软件开发的基本策略有三种,复用,分而治之,优化-折中。
        复用,就是我们可以利用前人开发的成熟功能或模块进行组装调用,来实现我们在开发工作中需要的功能,但是仅仅这么复用下去的话,那么我们也不会有进步,也不会有创新,个人价值从何体现?所以我们需要在复用的同时,对成熟模块进行优化,理解它的工作原理,从而达到更好的使用,以及站在更高的层面来实现成熟模块的功能,还有对现有系统也要进行优化。此外,复用还需要注意的是,复用是我们拿别人的东西,同样,我们做的东西,也要方便别人来拿着用才可以。这样才能实现最大价值。
        分而治之,好像很多地方都有提到这个名词,我在算法书上也有见过类似的思想。将一个复杂的功能分解成很多个简单的功能,然后逐一击破,最后将每个简单功能的实现组合起来,就是这个复杂功能的实现了。但是分解问题的过程需要注意的是,分解并不是简单的拆卸,要确保分解后的功能,最后归并,还是原来的复杂问题才可以。
        优化-折中,优化工作并不是可有可无的工作,而是我们必须要做的事情,当优化工作中遇到困难时,我们可以选择折中方案,但是该方案的前提是不能损失其他功能。