The practice of programming 读书笔记 (一)

来源:互联网 发布:raphael js api 编辑:程序博客网 时间:2024/06/04 18:35

第一章 编程风格 Style

 良好编程风格的目的,就是为了使得代码更容易被自己和其他读者所理解。

同时,良好的编程风格也是写出好程序的关键所在。

1.关于命名

(1) 全局变量使用说明性命名,局部变量使用短名字,全局变量名字应该足够长以表达清楚它所具有的含义,同时,对于全局变量进行一小段注解是有益处的。

比如:

int  npending  =  0;  // current  length  of  input  queue

同理还有全局函数,全局类,结构等,都应该有相应的说明。

(2)局部变量就没有必要太过冗长,有时候简洁的表达给人一种清晰的感觉。

程序越长,好的,系统化的,名字就越发显得重要。

C++的名空间和Java的包都帮助我们管理各种名字的作用范围,使之表达得清晰明确。

 

2.关于表达式和语句

(1)注意使用缩进。

(2)采用贴近自然的方式书写表达式,好比你可以把它大声朗读出来。

(3)使用括号排除可能的二义性。尽管有时候我们可能记不清楚优先级顺序,也没有必要去死记硬背。

(4)分解复杂表达式,使它更容易被理解。

(5)我们的目的是写清晰的代码,而非“聪明”的代码。

3.保持程序的一致性

(1)使用一致的缩进方式和加括号的方式。

(2)如果一个if紧跟在另外一个if之后,请一定要加花括号。

(3)do-while循环远比while,for用的少。

(4)为了一致性,使用习惯用法,不要创新

(5)不要使用gets()函数,可能会导致安全性问题,选择fgets()是好的。

(6)strlen()不会计算结束符,但是strcpy()会计入。对于Java没有越界的困难需要考虑。

4.函数与宏

在C语言中,把频繁使用的操作定义为宏而非函数以加快速度,实际上是站不住脚的。或者说,实际上,在许多例子中,函数宏带来的缺点超过了所谓的执行效率

Java压根就没有宏,C++的inline函数也比使用宏具有更好的安全性

5.关于数字

给神秘的数字取个名字

定义常数,在C++里面使用const,Java中的final

(1)使用语言去计算对象的大小,s i z e o f( a r r a y [ 0 ] )可能比s i z e o f(i n t) 更好,因为即使是数组的类型改变了,也没有什么东西需要改变。

6.注释

(1)放在每个函数前面的注释可以成为帮人读懂程序的台阶。如果函数代码不太长,在这里写一行注释就足够了。

(2)有些代码原本非常复杂,可能是因为算法本身很复杂,或者是因为数据结构非常复杂。在这些情况下,用一段注释指明有关文献对读者也很有帮助。

(3)不要注释差的代码,重写它。

(4)澄清情况,不要添乱。注释应该在困难的地方尽量帮助读者,而不是给他们设置障碍。

(5)注释是一种工具,它的作用就是帮助读者理解程序中的某些部分,而这些部分的意义不容易通过代码本身直接看到。我们应该尽可能地把代码写得容易理解。在这方面你做得越好,需要写的注释就越少。好的代码需要的注释远远少于差的代码。

 

好风格应该成为一种习惯。如果你在开始写代码时就关心风格问题,如果你花时间去审视和改进它,你将会逐渐养成一种好的编程习惯。一旦这种习惯变成自动的东西,你的潜意识就会帮你照料许多细节问题,甚至你在工作压力下写出的代码也会更好。

原创粉丝点击