[I_Say]写程序的一些感想和教训

5. September 2009

(旧文重发,本文写于大学期间)

一.凡事预则立,不预则废。写程序,作软件亦如此。大一的时候,写程序是不打稿的,心中有什么想法,就怎么写,写的挺痛快,也挺滋润。可是带来的后果是无 穷无尽的测试和修改。一个小错误,要查个半死,查出来后了,又把程序改的乱七八糟,程序再也不是优雅的思想的体现,更象是混乱思维的杂糅。这是教训一:不 打没有准备的战。写程序要写设计报告(除非已经对算法了如指掌),做软件,要写需求报告和设计报告,或者一个包含了需求报告的设计报告。这样做会大大提高 工作效率。不至于沉浸在错误的深渊中。

update: 除了写程序,做其他事情也是一样的道理,不熟悉的一定要做计划打草稿,直到养成习惯后,一切都顺其自然了。

二.注释!注释!注释!有的人写程序有一个极为不好的习惯,从来不写注释,老兄,不为别人写也该为自己写啊,如果你不信,拿出你一年前的超过100行的没 有注释的代码,~~~~~晕,特别像c/c++这样大有着大部分过程的语言。更要勤写注释。我有个同学,他从大一开始就写注释,而且特别详细,但是他做的 程序总是那么高效和漂亮。

update:生活要做记录

三.程序格式规范,自打开始编程,一直很重视这方面的东西,包括命名的规范和格式的规范。规范的程序,看着总是那么的漂亮和舒心,特别是看像 《thinking in java》里的例子程序,惊叹于作者的认真,和代码的优美。这和注释是一样的,与其说是为了别人,不如说是为了自己。该所缩进的一定要缩进。还有就是命名 的问题,有的人从学编程开始就喜欢int 1,j,a,b;开始的时候用这些简单的标识符还是可以的,但是当你编一个像模象样的程序你还乐此不彼,那就不得不反思一下了。宁可标识符长一点,也不用 一些无意义的字符。

四.程序模块化,记得有一次一位贝尔实验室的教授来大学作讲座,他说在贝尔实验室,一个函数不会超过100行。当时生表怀疑,可是现在我对此深信不疑,一 个好的程序,总是有很多小的优秀的模块构成。这样即使出错了也可以通过调试判断出到底是哪一个模块除了问题。当升级程序的时候,你所要做的仅仅是更换模 块,而不用去满天下去找程序。java在这方面非常有优势,彻底的面向对象。通过继承,重载,多态,接口等特性。非常容易模块化。不同模块之间通过引用联 系在一起。就像这个世界上的人一样,每个人都是一个独立的个体,个体与个体之间同过亲情,友情,爱情等联系在一起。还有一个好处就是模块的可重用性,我有 一个ToolKit包,我把所有的我认为可重用,而jdk里有没有的类放在这个包里,比如文件读取,数据库联接。如果每读一次文件,连一次数据库都要写一 段相同的程序,想象一下那是多么低效。

五.沟通和交流,也许你是天才,可以完全自学所有东西,否则,还是多问问得好。所谓三人行必有我师。每个人的程序都可能有他的闪光点。在别人许可的条件下 尽可能的学习他人的长处和优点。如果你跷起二郎腿,认为老子天下第一。那你可能真的是天下第一,坐井观天中的井里的第一。多与同事,同学交流,多上论坛, 这样交流双方都学了对方的知识,又交流了感情,何乐而不为?闭门造车是写不出优秀的程序的。

六.激情,有的人20的人60岁的心,喝喝酒,抽抽烟,失恋一次就认为自己看破红尘,做人本来就不容易,如果还让一些烦心事折磨着本来就已经很累得心。那 这日子还怎么过。不如过得平淡一点,因为内心越是平淡,越是容易产生激情。

I_Say

Comments

12/2/2011 1:49:09 AM #
I hope you never stop!  This is one of the best blogs Ive ever read.  Youve got some mad skill here, man.  I just hope that you dont lose your style because youre definitely one of the coolest bloggers out there.  
Please keep it up because the internet needs someone like you spreading the word.

1/7/2012 12:45:50 AM #

555linli8
The tyrant dies and his rule ends, the martyr dies and his rule begins.

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading