Hello ! 我是小小今天开始本周的第一篇,如何改善代码质量

前言

对于代码质量改善,需要注意以下几个点:
1. 先让代码跑起来再考虑优化,警惕过早优化代码
2. 代码review很重要。
3. 阅读代码的时间比写代码的时间要多

注意的规范

  1. 所有文件的开头都需要有Java文档注释
  2. 尽量使类中所有变量都是私有的,只能通过方法进行访问。
  3. 常量应该全部大写,单词之间由下划线进行分割。
  4. 一行应该只能有一个语句
  5. 使用if语句,for语句,while语句,do语句,switch语句的时候需要使用大括号
  6. 一行当中不能超过80个字符
  7. 对于数组应该使用int[] packages 。
  8. 不能在循环中构造和释放对象。
  9. 标记为final的类都不能扩展
  10. 在任何地方使用局部变量
  11. 用代码处理内存溢出
  12. 使用懒加载
  13. try-cathch 包含尽可能少的代码
  14. 集合如果能估计长度,请指定容器初始长度
  15. 在Java编程中,数据库连接,IO操作,使用完毕后需要尽可能关闭。
  16. SQL语句应该大写。

for优化

//replace
for( int i = 0; i < collection.size(); i++) {
...
}
//with...
for( int i = 0, n = collection.size(); i < n; i++) {
...
}

循环尽量不要不断创建对象

//这种做法会导致内存中有count份Object对象引用存在,count很大的话,就耗费内存了
//replace
for (int i = 1; i <= count; i++){
    Object obj = new Object();    
}
//with...
Object obj =null;
for (int i = 1; i <= count; i++){
     obj = new Object();    
}

字符串优化

String str1 = "str";
String str2 = "ing";
String str3 = "str" + "ing";//常量池中的对象
String str4 = str1 + str2; //在堆上创建的新的对象   
String str5 = "string";//常量池中的对象
System.out.println(str3 == str4);//false
System.out.println(str3 == str5);//true
System.out.println(str4 == str5);//false

//使用append代替+
//replace
String str = "profit = revenue( “ + revenue +
”) - cost( “ + cost + ”)";
//with
String str = new StringBuffer().append( "profit = revenue( “).
append( revenue).append( “) - cost( “).
append( cost).append( “)“).toString();

字符串优化如下所示

String str = "aac";
//replace
str.equals("aac");
//with
"123".equals(str);

使用常量

常量声明为static final以大写命名。
同类型常量使用枚举
单一常量使用interface声明

spring注入

代码如下所示
使用Construction代替FieLd注入

class Foo {
  //replace
  //@Autowired private SomeService someService;
  //with
  private final SomeService someService;

  @Autowired public Foo(SomeService someService) {
    this.someService = someService;
  }
}

数组复制

使用System.arraycopy ()进行复制

单元测试

进行单元测试

异常

异常规范如下所示:

if(logger.isDebugEnabled){
    //打印当前异常错误信息+不处理的异常向上抛
     logger.debug("log info"+ e.localErrrorMsg,e)
}

关于作者

我是小小,一枚双鱼座的程序猿,我们下期再见~bye~