本来不想写这篇文章的。之前在《优雅编程系列》的文章中,都有提过了。但是主管说要收集一些编码规范的建议,就针对公司情况.下面分享几点,get起来,以后不要再犯了……

1.接口里面的方法默认都是public

不用再加public修饰

2.字符串变量和字符串常量equals的时候将字符串常量写在前

可以避免空指针。

如:

  1. if("123".equals(str)){
  2. }

3.不要创建一些不使用的对象,不要导入一些不使用的类

类中import 没用的类要及时删除。

4.for循环建议写法

  1. for (int i = 0, int length = list.size(); i < length; i++)

5.循环内不要不断创建对象引用

如:

  1. for (int i = 1; i <= count; i++){
  2. Object obj = new Object();
  3. }

改为:

  1. Object obj = null;
  2. for(int i = 0; i <= count; i++){
  3. obj = new Object();
  4. }

6.尽量避免随意使用静态变量

如:

  1. public class A{
  2. private static B b = new B();
  3. }

此时静态变量b的生命周期与A类相同,如果A类不被卸载,
那么引用B指向的B对象会常驻内存,直到程序终止

7.方法的返回值不要为空

如:return null;

1.返回List:

  1. private List<PcsTaskDTO> sortDecisionAndBackTask(List<PcsTaskDTO> pcsTaskDTOList) throws Exception{
  2. if(CollectionUtils.isEmpty(pcsTaskDTOList)) return null;
  3. }

解决方法:

  1. private List<PcsTaskDTO> sortDecisionAndBackTask(List<PcsTaskDTO> pcsTaskDTOList) throws Exception{
  2. if(CollectionUtils.isEmpty(pcsTaskDTOList)) return Collections.EMPTY_LIST;
  3. }

2.返回Set:

Collections.EMPTY_SET

3.返回Map:

Collections.EMPTY_MAP

8.不要在for循环中查询数据库

小心第三方测试公司弄死你!

9.代码层级不要太深,最多3层

如:

/**
* 只做一件事
*/
public void onlyDoOneThing(){
   String ay = "";
   Boolean flag = true;
   /** 第一层级 不错 **/
   if(flag){
       /** 第二层级 还能接受 **/
       if(flag){
           /** 第三层级 没法接受了 **/
           if(flag){
           }
       }
   }
}

10.每个方法的代码不要太长

如果一个方法的代码超过一屏幕,建议拆分为多个

如:

if(){
..业务代码1
}else{
..业务代码2
}
for(int i=0;i<100;i++){
   ..业务代码3
}

对于if,和for中的代码,如果是处理业务代码,一般可以抽出单独的一个代码,改成

if(){
   method1();
}else{
   method2();
}
for(int i=0;i<100;i++){
   method3();
}  
method1(){
   //业务代码1
}
method2(){
   //业务代码2
}
method3(){
   //业务代码3
}

11.函数参数:应该少于2个

如果函数超过2元:应该将其中的某些参数封装成类;

例:

/**
* 只做一件事
* @param arg1  参数1
*/
public void onlyDoOneThing(String arg1){
   System.out.println("一个参数,不错!!!");
}
/**
* 只做一件事
* @param arg1  参数1
* @param arg2  参数2
*/
public void onlyDoOneThing(String arg1,String arg2){
   System.out.println("两个参数,能接受和理解!!!");
}
/**
* 只做一件事
* @param arg1  参数1
* @param arg2  参数2
* @param arg3  参数3
* @param arg4  参数4            
*/
public void onlyDoOneThing(String arg1,String arg2,String arg3,String arg4){
   System.out.println("3个或3个以上的参数,没法接受!!!");
}

12.删掉被注释掉的代码

除非那段代码,删掉,人会死掉。

13.避免括号后面的注释

错误注释比不注释跟可怕,最好做到代码既注释。

如:下面提供一个例子,方便理解:

package com.hwy.test;
/**
* 代码整洁之道
* Created by Ay on 2016/7/11.
*/
public class CodeCleanTest {
   public static void main(String[] args) {
       /** 这段代码是不需要注释的,看方法名称就可以清楚知道意图了 **/
       engagements();
       boolean isMerryMe =  canMerryMe();
       if(isMerryMe){//避免括号后面的注释,例如这
           getMarried();
           /** 删掉被注释掉的代码; **/
           //String ring = "";
       }
       /** TODO注释,提示尚未完成的工作 **/
       //TODO 结婚生子
       /** 悄悄话内容,这里涉及到一些业务上的事,所以需要注释下 **/
       String whisperContent =  getwhisperContent();
   }
   /**
    * 获得悄悄话内容
    * @return
    */
   public static String getwhisperContent(){
       return "XXX OOO";
   }
   public static void engagements(){
       System.out.println("约会");
   }
   public static boolean canMerryMe(){
       boolean isLoveMe = true;
       if(isLoveMe)return true;
       return false;
   }
   public static void getMarried(){
       System.out.println("结婚");
   }
}

14.不要使用单个字母来做变量名

时间一长,自己都不清楚自己当初的命名是什么意思

15.不要使用有误导性的字母作为变量名

比如小写字母l和大写字母O,因为他们和数字的1和0很像(老话题了)

16.类名和对象名一般都是名词和名词短语,而不应当使用动词

17.方法名一般是动词和动词短语;get,set,is前缀

如:

public void getUsers();
public void getData();
public void isCompleted();

18.对于方法名

应该保持一致,比如对于绑定数据的方法,不要有的地方用BindData,而另一些地方使用DataBind ;

19.避免误导:userList的类型最好就是List

例:

//错误
String userList = "";
//正确
List<String> userLit = new ArrayList<>();

20.使用可搜索的名称:避免使用单字母变量和数字常量

错误:

int s = 0;
for(int i=0;i<100;i++){
   s = s + i;
}

正确:

//起码sum在搜索时比较方便
int sum = 0;
for(int i=0;i<100;i++){
   sum = sum + i;
}

21.单行代码长度

以不拖动滚动条为准则,代码行长度80个字符可以接受,最多120个字符,再多,你想逆天啊!

22.去掉System.out.println

代码部署到生产环境前,去掉全部System.out.println

读书感悟
来自 弗兰西斯·培根《培根论人生》

如果问在人生中最重要的才能是什么?那么回答则是:第一,无所畏惧;第二,无所畏惧;第三,还是无所畏惧。
人生如同道路。最近的捷径通常是最坏的路。
在世之时与人为恶,到头来却是于己不幸。
没有真挚朋友的人,是真正孤独的人。
奇迹多是在厄运中出现的。
凡过于把幸运之事归功于自己的聪明和智慧的人多半结局是不幸的。
有些书可供一赏,有些书可以吞下,有不多的几部书则应当咀嚼消化;有的书只要读读其中一部分就够了,有些书可以全读,但是不必细心地读,还有不多的几部书则应当全读、勤读,而且用心地读。
————————————————
版权声明:本文为CSDN博主「阿_毅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huangwenyi1010/article/details/53890837