代码审查规范学习记录:
1.规范:项目 命名 注释 编码 日志
1.1:项目
1.1.1开发工具:使用lombok
1.1.2项目管理与文件管理:maven,git\svn
1.2:命名
1.2.1统一,达意,简洁,骆驼法则,英文vs拼音
1.2.2接口用I作为命名的前缀
1.2.3抽象类前缀使用Abstarct
1.2.4采用某种设计模式:名称后缀其设计模式
1.2.5默认实现前缀Default
1.2.6包名全小写
1.3:注释
1.3.1修改旧代码注释:注释旧代码,添加新代码,并添加需要的代码维护注释
1.3.2新增代码注释://Modify begian ***** //Modify end
1.4:编码
1.4.1面向变化编程,不是面向需求编程
1.4.2先保证程序的正确性,防止过渡工程
1.4.3代码组织规范:包定义-外部包或类引用-类文档注释-类定义-变量-构造函数-setter/getter-public-protected-privae-main-代码维护记录
1.4.5异常通用性原则:业务处理类的顶层入口,处理所有的异常,记录相应的异常信息,组织结果
抛出异常最好是对象,捕捉时先子类后父类的顺序放置catch块
捕获异常后,必须处理
多异常处理 catch(Aexcpetion e|Bexcpetion e2)
1.5:日志
1.5.1记录原则:禁止使用字符串拼接来输出日志内容,用占位符, 尽可能包含上下文
1.6延伸:经验沉淀
1.6.1不要在循坏中构造释放对象
1.6.2处理String用StringBuilder
1.6.3避免使用太多的synchronized关键字,多人协作时容易出死锁问题
1.6.4循环体内工作量最小化
1.6.5多重循环中,将最忙的循环放在最内层
for(i;i<100;i++){
for(j;j<5;j++)
}
for(i;i<5;i++){
for(j;j<100;j++) //(优解) 速度快 底层编译原理
}
1.6.6用乘法代替除法,特别是浮点数的除法
2.开发规范管理的方式
代码评审工具:Pmd,checkstyle(推荐),sonarQube