壊小子的学习【程序开发学习篇】(四)代码优化学习
其实在软件开发的学习过程中,语言是比较好学的。毕竟只是掌握语法,记住一些单词就差不多了,另外再了解一些该语言所独有的特性。而在软件开发中真正难的应该是除语言以外的软实力。就好比我们在找工作的时候,技术能力是我们的硬实力,而学习能力、待人办事能力则是我们的软实力,这两方面的实力应该是相辅相成不可分离的否则就无法将我们自己构建成一个完整的人,甚至在更多的情况下是软实力塑造了我们的硬实力,是我们各种能力的基石。而开发思想、设计思维、数据分析等等一系列相关知识就构成了我们软件开发的软实力。
我接触过的,也应该是大家接触的最多的便是设计模式、重构以及数据结构这三个方面。其他的东西就真没有什么涉猎了。一是前面的文章中都提到过自己并非科班出身,连高中都没上过的人看着数据结构真的是像天书一般。二是在认清自己目标与能力的基础上,制定了其他方向上的学习目标,所以在这方面并没有投入太多,因此,在这里只是简单聊聊而已,并非是一篇言传身教的文章,或许也有很多的错误还望指证。
我们先从设计模式说起,其实这个方面的内容在培训的时候就已经接触过。当时做的练习便是鼎鼎大名的"抽象工厂"。这个模式似乎真的是满大街的培训学校或正规大学都在教,或许是因为他最能体现设计模式的理念。相信大家应该都知道面向对象的三大特点:封装、继承和多态,而设计模式的繁荣则是在面向对象开发正式成为主流后才流行起来的,因此也听过不少的说法便是"设计模式正是为了弥补面向对象开发中的不足"。在这里我不能下准确的判断来证明这个说法是否准确,但就自己的观点来说,这句话感觉上应该是没什么问题的。
我看过Gof的设计模式的书,也看过HeadFirst系列的,前几个月还看了一遍《大话设计模式》。讲解设计模式的书其实真的不少,形式也各种各样,虽说我看过这几本但也都是一知半解的并且也没有怎么跟着练习,所以说学的并不扎实。不过在最后这一次看《大话》的过程中倒是有些感悟。一是设计模式其实在我们的日常开发中已经用过不少,比如策略、模板方法、简单工厂、单例等等。二是有些模式还真的从没用过,比如解释器、享元、备忘录等等。三是设计模式很好,但应该多用于实践中,在实践中选择最佳的模式,而不是滥用这些模式,不能神化它们,更主要的还是理清逻辑。
对于设计模式的理解也就只有这么多,其实也是比较粗浅的,但数据结构则是更让我受不了的一项重要知识。数据结构方面我是真的没有任何的发言权,书也买过几本,不过目前的水平就是除了几个简单的算法和排序之外其余的啥也不会,更不要跟我提什么复杂度之类的名词,它们对于我来说还真的就只是个名词而已。
最后谈谈项目的重构。其实每次的项目完成后在测试期间都会进行一些重构,如果不是时间问题大部分的项目都能够做出不少的重构并使代码更加的优雅简洁,但这种情况很少出现。其实我自己是个有点强迫症的完美主义者,我希望我的代码有着整齐好看的注释,我也希望我的代码能够简洁美观,决不能出现重复的代码,决不能让一个方法超过一屏。但这些在几年的开发过程中还真的没有完完全全的实现过我这个宏伟的愿望!
我的重构很简单,充分发挥面向对象的三大特性,再就是根据我第一家公司的经理说过的很经典的一句话:"面向对象就是啥都是点出来的!"作为原则来进行重构。其实无非就是利用好继承与重写多态这些功能,而封装往往是在开始编码的阶段便进行考虑。另外就是理清包含之间的关系,层次架构之间的关系。最后就是补完注释,方便将来的维护。
------------------------------------------------
使用Word2007发布,如图片未显示或提示有附件但无附件下载地址的,请移步至独立博客查看完整文章!
文章修改及增加内容仅在独立博客中更改!
我的独立博客:壊小子 - http://www.zyblog.net/