121、变量申明
声明指定了变量的类型,定义为变量指定的取值 。在允许这样做的语言,如C++和Java中,变量应该在靠近第一次使用的位置进行声明和定义。在理想情况下,每个变量都应该在声明的同时被定义,如下所示:
Java示例:良好的初始化
int accountIndex=0;
//code using accountIndex
. . .
double total=0.0;
//code using total
. . .
boolean done=false;
//code using done
while(!done){ }
. . .
122、特别注意计数器和累加器
i、j、k、sum和total等变量常用做计数器(counter)或累加器。在下一次使用这些变量之前忘记重置其值也是一种常见错误。
123、长短变量名的使用范围
短的变量名总是不好吗?不,不总是这样。当你把一个变量名取得很短的时候,如i,这一长度本身就对该变量做出了一些说明-------也就是说,该变量代表的是一个临时的数据,它的作用域非常有限。
阅读该变量的程序员应该会明白,这一数值只会用于几行代码之内。当你把变量命名为i的时候,你就是在表示,“这是一个普通的循环计数器或者数组下标,在这几行代码之外它没任何作用。”
一项研究表明,较长的名字适用于很少用到的变量或者全局变量,而较短的名字则适用于局部变量或者循环变量。不过,短的变量常常会带来一些麻烦,因此,作为一项防御式编程策略,一些细心的程序员会避免使用短的变量名。
124、命名规则可以带来以下的好处。
(1)、要求你更多地按规矩行事。通过做一项全局决策而不是做许多局部决策,你可以集中精力关注代码更重要的特征。
(2)、有助于在项目之间传递知识。名字的相似性能让你更容易、更自信地理解那些不熟悉的变量原本应该是做什么的。
(3)、有助于你在新项目中更快速地学习代码。你无须了解Anita写的代码是这样的,Julia是那样的,以及Kristin的代码又是另一种样子,而只须面对一组更加一致的代码。
(4)、有助于减少名字增生。在没有命名规则的情况下,会很容易地给同一个对象起两个不同的名字。例如,你可能会把总点数既称为pointTotal,也称为totalPoints。在写代码的时候这可能并不会让你感到迷惑,但是它却会让一位日后阅读这段代码的新程序员感到极其困惑。
125、变量名与子程序命名规则
比较通用的一个规则是变量名与对象名以小写字母开始,子程序名字以大写字母开始:
variableName对RoutineName()。
不同的语言有自己不能的命名风格。像C、C++与JAVA。使用的时候要学习。对于一些小种语言则没有较统一的命名规则。
windows下使用较多的匈牙利命名规则。它的特点是加前缀。
命名规则不是一个硬性规定。选一种大家较为接受的即可。
126、缩写的一般指导原则
下面是几项用于创建缩写的指导原则。其中的一些原则彼此冲突,所以不要试图同时应用所有的原则。
(1)、使用标准的缩写。(列在字典中的那些常见缩写)。
(2)、去掉所有非前置元音。(computer变成cmptr,screen变成scrn,apple 变成appl, integer 变成intgr。)
(3)、去掉虚词and,or,the等。
(4)、使用每个单词的第一个或前几个字母。
(5)、统一地在每个单词的第一、第二或者第三个(选择最合适的一个)字母后截断。
(6)、保留每个单词的第一个和最后一个字母。
(7)、使用名字中的每一个重要单词,最多不超过三个。
(8)、去除无用的后缀------ing,ed等。
(9)、保留每个音节中最引人注意的发音。
(10)、确保不要改变量的含义。
(11)、反复使用上述技术,直到你把每个变量名的长度缩减到了8到20个字符,或者达到你所用的编程语言对变量名的限制字符数。
127、布尔变量妙用
JAVA示例:目的不明确的布尔判断
if((elementIndex<0) || (MAX_ELEMENTS<elelmentIndex) || (elementIndex==lastElementIndex))
{
。。。
}
JAVA示例:目的明确的布尔判断
finished=((elementIndex<0) || (MAX_ELEMENTS < elementIndex));
repeatedEntry=(elementIndex==lastElementIndex);
if(finished || repeatedEntry)
{
。。。
}
128、具名常量
具名常量很像变量,一旦赋值以后就不能再修改了。具名常量允许你用一个名字而不是数字――比如说MAXIMUM_EMPLOYEES而不是1000――-来表示固定的量,比如员工人数的最大值。
使用具名常量是一种将程序“参数化”的方法――把程序中可能变化的一个方面写为一个参数,当需要对其修改时,只改动一处就可以了,而不必在程序中到处改动。
(1)在数据声明中使用具名常量
在需要定义所用数据的大小的数据声明和其他语句里,使用具名常量可以提高程序的可读性和可维护性。在下例中,就用LOCAL_NUMBER_LENGTH来描述员工电话号码的长度,而不用数字7。
Visual Basic示例:在数据声明中使用具名常量
Const AREA_CODE_LENGTH=3
Const LOCAL_NUMBER_LENGTH=7
Type PHONE_NUMBER
areaCode(AREA_CODE_LENGTH) As String
localNumber(LOCAL_NUMBER_LENGTH) As String
End Type
。。。
'make sure all characters in phone number are digits
For iDigit=1 To LOCAL_NUMBER_LENGTH
If (phoneNumber.localNumber(iDigit)<"0") Or
(2)用枚举来优化代码
代码一:
For i=1 To 12
profit(i)=revenue(i)-expense(i)
Next
代码二:
For i=1 To NUM_MONTHS_IN_YEAR
profit(i)=revenue(i)-expense(i)
Next
代码三:
For month=1 To NUM_MONTHS_IN_YEAR
profit(month)=revenue(month)-expense(month)
Next
代码四:
For month=Month_January To Month_December
profit(month)=revenue(month)-expense(month)
Next
129、个人与团队
对于小的项目,程序员的个人才能对软件质量影响最大。程序员成功与否部分取决于开发过程的选择。
对于多个程序员参与的项目,组织性的重要程序超过了个人技能。即便你有一个庞大的团队,其合力并不等于每个人能力的简单相加。人们一起工作时的方式将决定其能力是珠联璧合还是相互抵消。某个成员对其他人的工作是支持还是拖后腿,取决于团队采取的开发过程。
130、清晰代码的好处
(1)、首先是降低复杂度
(2)、便于自己理解
(3)便于他人理解,如果在一个大的团队里,每个人的代码都清晰明了,那就简化了成员之间的沟通,提高了团结效率。降低了沟通复杂度。同时,对于代码的维护也降低了复杂度。对于代码的更新也降低了复杂度。