翻阅别人整理的一份《Java语言编码规范(Java Code Conventions)》。我从其中抽出了我觉得自己会犯的错误,或者是阅读代码的时候常常遇到的问题罗列出来。自我警示而已。不能算什么文章。
我翻阅的此文档版权如下:
译者 晨光(Morning)
搜集整理:华竹技术实验室http://sinoprise.com
简介:
本文档讲述了Java语言的编码规范,较之陈世忠先生《c++编码规范》的浩繁详尽,此文当属短小精悍了。而其中所列之各项条款,从编码风格,到注意事项,不单只Java,对于其他语言,也都很有借鉴意义。因为简短,所以易记,大家不妨将此作为handbook,常备案头,逐一对验。
声明:
如需复制、传播,请附上本声明,谢谢。原文出处:http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html, 译文出处:http://morningspace.51.net/,moyingzz@etang.com
声明:
推荐一行一个声明,因为这样利于写注释。即:
intsize;//size of XXXX
intlength;//length of XXXX
不要将不同类型的变量放在同一行。
intfoo ,fooarray[];//居然可以这么干。我从来没干过。。。见识了。
比较整齐的制表符方式:
intsize;//size of XXXX
intlength;//length of XXXX
Object currentyXXXX; //currently selected XXXX
初始化
尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。
语句
简单语句:
每行最多包含一条语句。
复合语句:
大括号可以被用于所有语句,包括单个语句。
见过有人写switch语句 每个case后又有一对大括号。
当switch语句的某个case后面不需要break的时候应该写注释说明。。
if语句总是用 {}括起来。避免使用如下容易引起错误的格式
if(condition)
statement;
项目里面这样的写法比比皆是,看着就像出门没穿内裤一样,感觉又危险又不舒服。
命名规则
临时变量
整型变量常用 i j k m n
字符型 用:c d e
实例变量
大小写规则和变量相似,除了前面需要一个下划线。
变量赋值
避免在一个语句中给多个变量赋相同的值。比如
fooBar.fChar = barFoo.lchar = ‘c’;//AVOID!!
不用将赋值运算符用在容易与相等关系运算符混淆的地方.比如:
if(c++ = d++){//我痛恨看到这样的代码,看得人都皮发麻。。
}
不要使用内嵌(embedded)赋值运算符试图提高运算是的效率。不知道是否真的可以提高运算效率。。 这样的代码看着让人崩溃。
d = (a = d + c) + r;//AVOID !!
应该写成
a= b +c;
d = a + r;
返回值
让你的程序结果符合目的。例如:
if(booleanExpression){
returnture;
}else{
returnfalse;
}
完全可以写成 。。。
returnbooleanExpression;
还有我曾经见过。。 这样么写的。。
if(!booleanExpression){
//语句A
}else{
//语句B
}
实在想不通 为什么不写成
if(booleanExpression){
//语句B
}else{
//语句A
}
比较喜欢逆向思维?还是怎么?其实也可以理解,或许是因为项目中刚开始只需要考虑!booleanExpression的情况,而后来又有需求两种情况都考虑。所以就产生了这样的代码。
类似的还有:
if(condition){
returnx;
}
returny;
应该写做:
return(condition ? x : y);