程序员之道 (二)

来源:互联网 发布:java 7 编辑:程序博客网 时间:2024/05/16 15:59

        上一节我说过要做健康的合格的程序员必须要有一个好的思想,其实这个思想是包含两方面,一个是技术思想,这个很明显就是面向对象编程思想,它是我们在技术方面的一个基础(至少到目前为止我们还没有一个比面向对象思想更好的思想理论);另外一个就是做人的思想,用来指导我们将人做好而不要最终变成一个技术疯子(当然技术疯子也不是不好,只是对于大多数人来讲成为技术疯子并不是最好的出路,过于片面的追求技术的"偏食者"是不健康的表现).

        那么这两种思想又该怎么学呢?首先我从面向对象思想方面谈一下我自己的看法。其实每个学习编程的人在学习的初期都必然的要接触面向对象的思想,因为现在这种编程思想已经在高级语言的领域完全的取代了面向过程的思想。但是大多数人却对这个不以为然,认为这种思想很简单的人大有人在,他们感觉不就是类啊、接口啊、继承啊、封装啊之类的东西吗?有什么特别的?没什么大用处嘛,那有直接写个类就工作来的方便。他们虽然理解力还可以,但是对这种思想的态度不是很好,所以这种人要经过很多磨难才能找到真谛;再有一种就是比较苯的一种,根本就不知道什么叫面向对象只会照猫画虎。另外一部分就总是徘徊在前面两种感觉之间,不能真正了解其真谛。这些情况其实大多数人都有过,我最初学习面向对象的时候,也是用了好久才从面向过程的思想中转变过来的。

       我在学习之初也象大部分人一样,不怎么懂得面向对象中那些理论,只会使用类来完成工作。甚至在做了一个项目中全部都是类,没有接口、没有继承。而且有些类的名称都和他作的作用完全不符。但是在逐步的学习和实践中,我越来越发现这样做是没法做出一个好的程序的,而且出现的BUG根本无法控制。这种项目我做坏了两个。出现了问题当然就要去解决,在解决的过程中我慢慢的开始使用接口、继承,使问题逐渐缩小。逐渐的又开始学习设计模式,在其中找到了一些共鸣,学习了很多解决一些通用的问题的方法。这时我开始发现似乎我的面向对象思想才掌握了一点点。越学习越发现自己知识结构越贫乏。等我学会了这些的使用的时候,已经花费了将近2年的时间。直到现在为止我仍然感觉面向对象的思想并非那么简单,能够用好它不是那么容易的时期,要不然就不会有那么多人在追逐设计模式了。

       现在很多的程序员都在研究什么语言好?哪个阵营比较吃香?其实不论是C++,Java,C#乃至将来会出现的其他语言,他们都会建立在同一个基础上,那就是面向对象的理论基础。所以一个人如果真正的掌握了面向对象那么他对于语言的把握也回是很到位的。所以不管你学的是哪个阵营,面向对象编程思想和其推崇的这个体系结构才是我们的至尊法宝。只有我们掌握了根本的理论我们才能真正的去运用它为我们服务。

       其实我们在编程的过程中会出现很多问题。在BUG丛生的地方,如果我们认真的观察就会发现很多与面向对象思想不一直的地方。这都是由于我们在编写的时候没有注意根本的思想,没有按照面向对象的思路去思考问题而是单纯的从解决这个单一的问题角度去思考。所以可能出现前后不一致的代码、重复代码、结构复杂的代码(象嵌套4~5层的IF语句)等等。

        也许有人会说你为什么这么推崇面向对象思想?其他理论就不好吗?这到不是,是因为在现阶段我们暂时没有别的选择。而且对于一些初学者而言,如果去研究太多的思想会迷失自己,就像是一个人即信仰佛教又信仰基督教还去研究道教,这种人除非是宗教研究者,否则他会逐渐的疯掉。(待续)

程序员之道(三)