算是读书笔记吧,后期有时间会对其进行整理的,书正在看,所以会随时更新
1.定义
编码过程中先不说多大的功能,只要编码都会涉及到定义,定义变量,定义函数,定义宏等。
大多数初学者因为受C语言课本的荼毒,声明变量名称都喜欢使用j,k,m,n等来定义,比如:
int i = 1;
int j = 0;
for( i = 1;i < 10;i ++)
{
if( i % 2 )
continue;
j++;
}
此段代码在实现上是没有错误的,但是当你去读的时候你只有读完整段代码才能清楚它的意图,如果
改为一下:
int nCount = 1;
int nEvenNumber = 0;
for(nCount;nCount < 10;inCount++)
{
if( nCount % 2 )
continue;
nEvenNumber++;
}
此例子比较简单,相对复杂的例子可以通过读变量名称,快速而准确的理解作者意图。
如果变量需要使用注释来说明,它就不是名副其实的变量命名。
2.注释
代码的最高境界不是写了多少的注释,注释的作用是为了表达代码不能表达的意思。如果代码可以直接
表达清楚它的意图,注释就不再需要。有些人编写代码觉得写得越是晦涩难懂越是高手,其实不然,代码
不是脑筋急转弯,而是为了以后维护管理,故代码越是清晰简单越好。
2.1 代码修改注释
很多人在修改问题之后会在类文件头部注释修改代码的日期,目的等消息,一年之后你会发现,代码
有三分之一都是此类注释。这些注释确实会让你更加明确这么长时间内都修改了什么,但是他们占用这么
大的代码量是否值得?
2.2 代码注意注释
部分代码通过编写代码本身不容易看出作者本来意图,需注释。注释一定要编写清楚,无歧义。之后
的维护对代码进行修改之后要对其注释进行维护。
3.代码结构
3.1 垂直方向上的间隔
一个代码文件中,不同内容和不同含义的代码要通过空行区分,这样可以使代码更加整洁。这就比如
语文中的标点符号“句号”,它标示着上一个意思已经结束了,你可以喘口气,再继续下一句。
3.2 垂直方向上的靠近
代码是一段一段进行编写的,从上往下的顺序。代码的含义也要从上往下捋,因为每个人在阅读代码
都是从头开始看起。从类的开始写到类的结束,相同作用或者含义的东西要放在一起,方便查找。被调用
者要放在调用者后面,这样就把此文件层次化,最下面是最底层的实现。这样在阅读的过程中就会比较愉
悦,不用把几百行的代码上下不停翻动。
4.测试程序
在开发一个新的功能的时候要附带着编写测试程序,好处有以下几点:
1.测试可消除对清理代码会破坏代码的恐惧。
2.单元测试程序可以很清晰的了解模块功能。
3.后期修改可以更加方便,实现更加容易,调理更加清晰。
4.完整的测试系统可以确保系统的稳定运行。
5.代码编写
a)用命名常量代替魔术数,在代码中经常看到数字,一些不容易理解的数字,如何让这些数字容易
理解,用命名常量的方式,给它冠上一个名字,通过名字了解意图。
b)封装条件,在实际代码编写中会看到 if 括号中很多判断条件,读者在看的过程中要联系上下文以
及注释才能了解判断条件的含义,很是费神。在编写的时候可以把这些条件封装起来,起一个代表性的名
字来识别,这样读者在读的时候会畅通。