简介:此书主要介绍了如何编写高质量的代码,对实现程序功能没有介绍,主要说了编写代码的一些注意事项,如程序风格,错误处理,语言特性,编程规范等方面。
第一章 文件结构
最基本的就是要有两个文件.h和.cpp(此处以c++为例,c语言为.c文件)。以前写代码的时候总是只有一个.c或者一个.cpp,没有对应的.h文件,当程序变大的时候,发现这是一个非常不好的习惯。引用书中对使用头文件原因的说明:
(1 )通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。
(2 )头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。
所以,以后编写程序的时候一定要添加头文件。
然后说明了文件结构:
1,版权和版本的声明,主要说明介绍一下作者的信息和程序的一些相关信息。
2,头文件的结构
(1 )头文件开头处的版权和版本声明。
(2 )预处理块。
(3 )函数和类结构声明等。
3,定义文件的结构
(1 ) 定义文件开头处的版权和版本声明。
(2 ) 对一些头文件的引用。
(3 ) 程序的实现体(包括数据和代码)。
4,目录结构
如果一个软件的头文件数目比较多(如超过十个), 通常应将头文件和定义文件分别保存于不同的目录,以便于维护。例如可将头文件保存于 include 目录,将定义文件保存于 source 目录(可以是多级目录)。
笔者在编写程序是便按照这种规范进行。
第二章 程序的版式
版式是非常重要的。笔者在大学学期计算机时,老师全部介绍程序的功能,语言的语法,很少介绍程序的组织结构,好的组织结构更有利于其他人进行阅读,增加程序的可读性,而且更加的美观。书中主要介绍了空行(用来区分不同的程序逻辑),代码行,代码行内的空格,对齐,长行拆分,修饰符的位置,注释,累的版式,这些内容需要记住并应用到程序的编写中去。另外,函数对板式有很大的影响。下面说一下笔者的导师介绍的编写函数的原则:
(1)重复即是罪恶。尽量将功能区分出来,引用函数,防止大量重复的代码。
(2)见名知意。这个原则和下一张命名有关系,主要是让读者看见函数名就能够基本知道函数的功能。可以防止写注释。
(3)函数函数不超过40行。此点主要强调程序功能要单一,不要太负责,类似于UNIX程序的风格,通过不同的函数组合实现复杂的功能。
第三章 命名规范
笔者刚刚接受导师的教育时,面对的第一堂课就是程序的版式和命名规范,当初一份作业便是研究不同的命名规范,匈牙利命名法,pascal命名法,驼峰命名法,java的命名规范等等,感兴趣的同学也可以都研究一下。规范的命名有利于程序的阅读。
书中主要介绍了3个方面。
(1)共性规则。
(2)windows下的命名规范。
(3)UNIX下的命名规范。
第四章 表达式和基本语句
主要和语法相关,讨论了运算符优先级的处理,表达式不要太复杂,if语句的使用,此处进行了重点介绍。
(1)布尔值,整型变量,浮点变量,指针变量和0的比较方法。
(2)在进行比较式,将常量放在表达式的左边,防止将 == 写成 = 号出错。
循环变量语句,主要讨论了循环的效率和循环中包含判断语句的情况。
for 语句的循环控制变量是一个非常主要的环节,看一下注意事项。
(1)不可在 for 循环体内修改循环变量,防止 for 循环失去控制。
(2)建议 for 语句的循环控制变量的取值采用“半开半闭区间”写法。
笔者刚进行编写程序的时候,由于没有遵守规则一,深受伤害。经常导致死循环,有时候当有i,j两个变量的时候,还错把j写成i,这两条建议非常的中肯,希望大家好好遵守。
switch语句主要注意两点:
(1)分支后面加上break;
(2)要有缺省的处理情况default。