java代码规范

代码规范
1、 命名规范
1.1骆驼法则
Java中,除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割。比如: supplierName, addNewContract,而不是 supplier_name, add_new_contract。

1.2 英文VS拼音
尽量使用通俗易懂的英文单词,如果不会可以向队友求助,实在不行则使用汉语拼音,避免拼音与英文混用。比如表示归档,用archive比较好, 用pigeonhole则不好,用guiDang尚可接受。

1.3 包名
使用小写字母如 com.pdwy.model,不要 com.pdwy.Model
单词间不要用字符隔开,比如 com.pdwy.util.jsfutil,而不要com.pdwy.util.jsf_util

1.4 类名
首字母大写,比如UserService,UserAction,不要userService,userAction
类名往往用不同的后缀表达额外的意思,如下表:

1.5 方法名
首字母小写,如 addOrder() 不要 AddOrder() 动词在前,如 addOrder(),不要orderAdd() 动词前缀往往表达特定的含义,如下表:



1.6 静态常量
全大写用下划线分割,如
public static find String ORDER_PAID_EVENT = “ORDER_PAID_EVENT”;
1.7 枚举
全大写,用下划线分割,如 public enum Events { ORDER_PAID, ORDER_CREATED }
1.8 局部变量名
参数和局部变量名首字母小写,骆驼法则。尽量不要和域冲突,尽量表达这个变量在方法中的意义。
首字母小写,骆驼法则,如: public String orderName;
2、 代码格式
用空格字符缩进源代码,不要用tab,每个缩进4个空格。(这个我有点不赞同)
2.1行宽
行宽度不要超过80。Eclipse标准
2.2 包的导入
删除不用的导入,尽量不要使用整个包的导入。在eclipse下经常使用快捷键 ctrl+shift+o 修正导入。
2.3 空格的使用
变量与变量之间加空格 .逗号后面如不换行 加空格. 判断中加空格
如下 a + b = c; call(a, b, c); if(null != userlist && userlist.size() > 0)
2.4 空行的使用
连续两行的空行代表更大的语义分割。
方法之间用空行分割
域之间用空行分割
• 超过十行的代码如果还不用空行分割,就会增加阅读困难
3、注释规范
3.1 注释 VS 代码
注释宜少二精,不宜多而滥,更不能误导
命名达意,结构清晰, 类和方法等责任明确,往往不需要,或者只需要很少注释,就可以让人读懂;相反,代码混乱,再多的注释都不能弥补。所以,应当先在代码本身下功夫。
不能正确表达代码意义的注释,只会损害代码的可读性。
过于详细的注释,对显而易见的代码添加的注释,罗嗦的注释,还不如不写。 •
注释要和代码同步,过多的注释会成为开发的负担
注释不是用来管理代码版本的,如果有代码不要了,直接删除,svn会有记录的,不要注释掉,否则以后没人知道那段注释掉的代码该不该删除。
3.2 块级别注释
单行时用// 多行时用/*….*/
较长的代码块要用
/*-----------------start---------------*/
/*-----------------end----------------*/包围起来
行内注释用 // 写在行尾

4、最佳实践和禁忌
4.1每次保存的时候,都让你的代码是最美的
程序员都是懒惰的,不要想着等我完成了功能,再来优化代码的格式和结构,等真的把功能完成,很少有人会再愿意回头调整代码。
4.2使用log而不是System.out.println()
log可以设定级别,可以控制输出到哪里,容易区分是在代码的什么地方打印的,而System.out.print则不行。而且,System.out.print的速度很慢。所以,除非是有意的,否则,都要用log。至少在提交到svn之前把System.out.print换成log。
4.3每个if while for等语句,都不要省略大括号{}
看下面的代码:
if (a > b)
a++;
如果在以后维护的时候,需要在a > b 时,把b++加上,一步小心就会写成:
if (a > b)
a++;
b++;
这样就错了,因为无论a和b是什么关系,b++都会执行。 如果一开始就这样写:
if (a > b) {
a++;
}
相信没有哪个笨蛋会把b++添加错的。而且,这个大括号使作用范围更明显,尤其是后面那行很长要折行时。
4.4 善用TODO
在代码中加入 //TODO: ,大部分的ide都会帮你提示,让你知道你还有什么事没有做。比如:
if (order.isPaid()) {
//TODO: 更新订单
}
4.5 在需要留空的地方放一个空语句或注释,告述读者,你是故意的
比如:
if (!exists(order)) {
;
}
或:
if (!exists(order)) {
//nothing to do
}
4.6 不要再对boolean值做true false判断
比如:
if (order.isPaid() == true) {
// Do something here
}
不如写成:
if (order.isPaid()) {
//Do something here
}
后者读起来就很是 if order is paid, …. 要比 if order’s isPaid method returns true, … 更容易理解
4.7 减少代码嵌套层次
代码嵌套层次达3层以上时,一般人理解起来都会困难。下面的代码是一个简单的例子:
public void demo(int a, int b, int c) {
if (a > b) {
if (b > c) {
doJobA();
} else if (b < c) {
doJobB()
}
} else {
if (b > c) {
if (a < c) {
doJobC();
}
}
}
}
减少嵌套的方法有很多:
合并条件
利用 return 以省略后面的else •
利用子方法
比如上例,合并条件后成为:
public void demo(int a, int b, int c) {
if (a > b && b > c) {
doJobA();
}
if (a > b && c > b) {
doJobB();
}
if (a <= b && c < b && a < c) {
doJobC();
}
}
如果利用return 则成为:
public void demo(int a, int b, int c) {
if (a > b) {
if (b > c) {
doJobA();
return;
}
doJobB()
return;
}
if (b > c) {
if (a < c) {
doJobC();
}
}
}
利用子方法,就是将嵌套的程序提取出来放到另外的方法里。
5、常用的快捷键
1. ctrl+shift+r:打开资源
2. ctrl+o:快速outline
3. ctrl+e:快速转换编辑器
4. ctrl+2+L:为本地变量赋值
5. ctrl+2+F为本地变量赋值,不过效果是把方法的计算结果赋值于类中的域。
6. alt+shift+r:重命名
7. shift+enter在当前行之下创建一个空白行,与光标是否在行末无关
8. Ctrl+shift+enter则在当前行之前插入空白行。
9. Alt+方向键 Alt + ↓(↑) : 向下(上)移动本行
10. Ctrl+m是编辑器窗口最大化的快捷键
11. Ctrl + Shift + O :引入包
12. Ctrl + Shift + F4 : 关闭所有打开的窗口
13. Ctrl + O:打开提示方法 outline
14.Ctrl+/,Ctrl+shift+c单行注释,ctrl+shift+/ 多行注释,取消+\
15. Ctrl + D : 删除本行
16. Ctrl + Alt + ↓(↑) : 向下(上)复制本行
17 .Alt + . : 输出提示(看自己myeclipse配置)
18. Ctrl shift + F 自动调整格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值