目录

写在前面

java编程规范

规范一、避免在程序中使用无意义的名称(变量名、方法名等),必须用有意义的名称来标识。

规范二、明确方法的功能,一个方法仅完成一个功能。

1.注释提炼法(如果一段代码上有注释,那么就可以提炼出来)

2.条件表达式和循环(应该将循环和其内的代码提炼到单独的函数中)

3.重复代码

规范三、方法参数不能过多(最好不超过5个)

规范四、你需要再三检查某对象是否为null

规范五、少用switch

规范六、方法尽量不要返回null

规范七、在进行数据库操作或IO操作时,必须确保资源在使用完毕后得到释放,并且必须确保释放操作在finally中进行

规范八、异常捕获不要直接catch (Exception ex) ,应该把异常细分处理

规范九、使用if一定要在最后包含一个else

规范十、线程最好使用线程池管理

规范十一、金钱操作,最好使用BigDecimal

规范十二、异常捕获一定要打印异常,否则根本不知道异常出在哪里

规范十三、添加必要且不啰嗦的注释


写在前面

    作为一个java程序员,编程规范是非常重要的。

    工作三年了,回头再看看自己一两年之前编写的代码,简直就是不忍直视。。

    尤其是最近,跟一些大佬一起编码,看着他们那些漂漂亮亮的代码,真的是从心里升起一股子佩服。

    于是乎,就诞生了这一篇,java编程的规范。

    我在这一篇文章中提到过,我的代码为什么看起来像shit?程序员写的代码有三重境界,让自己看懂-让机器看懂-让别人看懂,当你写的代码能够轻易的移交给别人,那说明你写的代码已经非常规范了。

java编程规范

    规范其实并不是“必须要这样做”,而是一种公认的比较合理的东西。

    就像是坐着不能抖腿,不是说抖腿就会影响健康,而是不雅观~

规范一、避免在程序中使用无意义的名称(变量名、方法名等),必须用有意义的名称来标识。

//例如,以下代码是万万不能出现的
public static void bbb(String aaa){
    int a = 0;
    if("张三".equals(aaa)){
        a = 1;
    }
    String ccc = "";
}

规范二、明确方法的功能,一个方法仅完成一个功能。

方法不能过长,确保一个方法仅完成一个功能是最好的效果。如果方法过长,对长方法进行分解,是每个程序员都应该会做的。

刚开始可能都不太清楚该怎么将一个方法进行分解,这里有几种分解方法的技巧:

1.注释提炼法(如果一段代码上有注释,那么就可以提炼出来)

通常写一段注释,就意味着以下的代码代表着一种功能,这个时候就可以将这段代码提炼出来。

2.条件表达式和循环(应该将循环和其内的代码提炼到单独的函数中)

通常这部分比较啰嗦,单独提炼出来可以提高代码可读性。

3.重复代码

将重复代码提炼出来,可以增加代码的复用性。

规范三、方法参数不能过多(最好不超过5个)

方法参数过多,可以封装一个实体类,将实体类作为参数进行传参。

切记,不要使用map作为方法参数,这样的代码可读性非常差!

规范四、你需要再三检查某对象是否为null

使用某对象时,一定要再三检查某对象是否为null,否则非常容易造成空指针。

规范五、少用switch

switch可以用枚举替代,或者用单个类来替代,或者单独抽取出来。

规范六、方法尽量不要返回null

取而代之以抛出异常,或是返回特例对象(代表null意义的自定义对象);对于以集合或数组类型作为返回值的方法,取而代之以空集合或0长度数组。

规范七、在进行数据库操作或IO操作时,必须确保资源在使用完毕后得到释放,并且必须确保释放操作在finally中进行

规范八、异常捕获不要直接catch (Exception ex) ,应该把异常细分处理

规范九、使用if一定要在最后包含一个else

对于if „ else if „(后续可能有多个else if …)这种类型的条件判断,最后必须包含一个else分支,避免出现分支遗漏造成错误;每个switch-case语句都必须保证有default,避免出现分支遗漏,造成错误。

规范十、线程最好使用线程池管理

规范十一、金钱操作,最好使用BigDecimal

规范十二、异常捕获一定要打印异常,否则根本不知道异常出在哪里

规范十三、添加必要且不啰嗦的注释