从业十年,看到过许多优秀的程序员,也见过不少平庸这辈,更有不少只能转做其它。原因我想也许他们一开始对自己的要求就不高,更重要的也可能是他们没有抓住程序的本质,没有搞清楚如何才能把事情做好。首先想把每个程序都做到最好这种信念是先决条件,人首先要有志向,只要想做好才有可能做好,下文所有的内容都是给这类人写的,如果只想混口饭吃,或者以后想做市场等其它方面的人就不用想这些事了。以下是我认为比较重要的几个原则,不当之处共同谈讨。
1,思路要简单,这样写出来的代码就会比较简单易懂。在这点上我比较占优势,当年一直没有学好过数学,所以太复杂的问题想不懂,因而一直采取比较简单的方法,容易的思路。君不见有人写代码非要想的很多,本来很简单的一个道理:两点之间直线距离最短,他偏要来个九曲十八弯。这种代码时间长了或者转给别人就不好维护。要做到也很容易,写代码之间大概想一下思路,一开始不清楚也没有关系,写的过程中发现代码有点拗口或者自己也不大明白时一定要停下来想一想这个思路本身是否有问题。
2,要做思想上的勤劳者,动手时的懒人。代码尽量少,这至少有两个好处:少打一些字,机器执行时的效率也会高,当然附加作用是看的人也容易理解。写好代码之后多想想这些东西是否还可以简化,力争将代码做到最少,代码少有两层意思:源代码量小及机器码也少,所以我们对每句源代码可能产生的机器也要有所了解。
3,代码量要小的另一重要环节是尽量不要调用系统API,复杂操作系统的API一般都是在一个功能提供者进程中实现的,其它调用者调用这些API时需要在提供运者进程中启动一个线程来完成这些调用,如此造成多执行很多代码。
4,每个程序都应该很好的模块化,分层定位准确。例如就驱动来讲,驱动功能最简单的描述就是向上(操作系统)提供接口供调用,向下操作硬件实现自己的功能。在这过程中需要经过一些调用,我们需要将这些代码模块化,使得最终操作硬件的代码在一起,不要很多函数都在操作同一硬件,实现差不多的功能,这种函数就可以归结为一个,通过不同的对数来区别各个功能,实现自己的目的,这样出现问题以后就比较好查。
5,代码要整洁,至少每一个源文件的编译风格要一致,这就不用多说了,谁也不想看乱七八糟的程序。