我在本文中要谈的不是编码的技术实现,我所关注的是关于编码的风格的问题。我在编写了e速的编码规范之后,产生了要写一些关于程序编码风格的念头;因此,就有了以下的文章,这些仅仅是本人的想法,可能在文章中还有一些未尽如人意的地方,所以肯请大家能够给与谅解。
很多人在谈到编码的艺术时,总会说我的程序怎么怎么的厉害,功能多么的强大,好像什么事情都能完成一样;但是去运行他的程序,bug不断;连他自己都不知道错在了什么地方。打开他的程序一看,代码写的凌乱不堪;命名上不规范,为了偷懒和简便有些命名干脆就用一个字母或者其他的简单符号代替,甚至于有些代码连他自己也搞不清是干什么了,更不要说怎样让别人去修改了….本人编码也快4个年头了,像上述的例子遇见过不少,整个程序改动起来实在是头疼。
的确,一件好的艺术品不在于其功能是多么的完善,而在于别人欣赏起来是否有它内在的美和是否很容易就把它从杂货堆里一眼就能辨认出来;毕竟它是艺术品而非日用品。我们写程序也是同样,如果程序中的格式很随意,例如对数组做循环,一会儿采用下标变量从下到上的方式,一会儿又用从上到下的方式;对字符串一会儿用s t r c p y做复制,一会儿又用f o r循环做复制;等等。这些变化就会使人很难看清实际上到底是怎么回事了。
写好一个程序,当然需要使它符合语法规则、修正其中的错误和使它运行得足够快,但是实际应该做的远比这多得多。程序不仅需要给计算机读,也要给程序员读。一个写得好的程序比那些写得差的程序更容易读、更容易修改。经过了如何写好程序的训练,生产的代码更可能是正确的。
注释:注释是帮助程序读者的一种手段。但是,如果在注释中只说明代码本身已经讲明的事情,或者与代码矛盾,或是以精心编排的形式干扰读者,那么它们就是帮了倒忙。最好的注释是简洁地点明程序的突出特征,或是提供一种概观,帮助别人理解程序。在标注注释的同时,应该注意下面的问题:
不要大谈明显的东西。注释不要去说明明白白的事,比如i + +能够将i值加1等等。注释应该提供那些不能一下子从代码中看到的东西,或者把那些散布在许多代码里的信息收集到一起。当某些难以捉摸的事情出现时,注释可以帮助澄清情况。如果操作本身非常明了,重复谈论它们就是画蛇添足了;给函数和全局数据加注释。注释当然可以有价值。对于函数、全局变量、常数定义、结构和类的域等,以及任何其他加上简短说明就能够帮助理解的内容,我们都应该为之提供注释。全局变量常被分散使用在整个程序中的各个地方,写一个注释可以帮人记住它的意义,也可以作为参考。放在每个函数前面的注释可以成为帮人读懂程序的台阶。如果函数代码不太长,在这里写一行注释就足够了。有些代码原本非常复杂,可能是因为算法本身很复杂,或者是因为数据结构非常复杂。在这些情况下,用一段注释指明有关文献对读者也很有帮助。此外,说明做出某种决定的理由也很有价值。
(编辑:aniston)
|