转载请注明出处:http://blog.csdn.net/yyh352091626/article/details/52219812
谈到编码规范,对于团队项目开发来说,是很有必要的。如果说代码是一种社会行为,那么代码规范可以说是法律,通过法律来约束行为。养成一个良好编码规范的习惯,一是可以统一代码风格;二是便于团队成员协作开发;三是在review代码的时候,更加容易精确地判断需要修改的地方;四是提高代码的可读性和可维护性,提高编码效率及代码质量。
写代码就像写文章一样,逻辑调理清晰,在合适的地方分段,这样对方看起来也比较舒服。当然,以下一些规范是个人整理出来的一些建议,也并非绝对正确,欢迎提议,不喜勿喷~~
为了使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码。换行符统一为windows格式。不管是Eclipse还是AS,把IDE的环境配好是首当其冲的。
空格:
”,”后面要加个空格;比较操作符(“>”,”<”,”==”)、赋值操作符(“=”,”+=”),算术操作符(“+”,”%”),逻辑操作符(“&&”,”&”,”||”),位操作符(“<<”,”^”)等双目操作符的前后面加空格;
if (value >= MAX_VALUE) { a = b + c; a *= 2; a = b ^ 2; }“!”、”~”、”++”、”–”等单目操作符前后不加空格
if、for、while、switch等与后面的括号之间应加空格,使if等关键字更为突出、明显。 if (a >= b && c > d) { }文件注释:从Java文件第一行开始,为避免被JavaDoc收集,以 /* 开始,以 */ 结束(JavaDoc收集的注释内容以 /** 开始),中间每一行前面加一个“*”。一般是一些版权信息、描述信息及License。
/* * Copyright (c) 2016, smuyyh@gmail.com All Rights Reserved. */ 类注释:以 /** 开头, 在Class、Interface、Enum之前。一般是用一句话描述类用途,也可有作者及时间等信息,这类信息不宜过多。属性注释:以 /** 开头。有时也可以直接写在一行
/** * 注释信息 */ private static final int TEXT_COLOR = Color.RED; /** 注释信息 */ private static final int BG_COLOR = Color.RED;方法注释:@since表明从那个版本开始就有这个方法;@exception或throws可能的异常;@deprecated表示不建议使用该方法。异常注释用@exception或@throws表示,在JavaDoc中二者等价,但推荐用@exception标注Runtime异常,@throws标注非Runtime异常。异常的注释必须说明该异常的含义及什么条件下抛出该异常。
/** * 方法描述 * @param [参数1] [参数1说明] * @param [参数2] [参数2说明] * @return [返回类型说明] * @exception/throws [违例类型] [违例说明] * @see [类、类#方法、类#成员] * @deprecated [说明及原因] */ public int method(String arg1, String agr2) throws Exception{ } 对变量的定义和分支语句(条件分支、循环语句等),稍微复杂一点的最好编写注释,因为这些语句往往是程序实现某一特定功能的关键,对于维护人员来说,良好的注释帮助更好的理解程序,有时甚至优于看设计文档。对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后需进入下一个case处理,最好在该case语句处理完、下一个case语句前加上明确的注释,这样比较清楚程序编写者的意图,有效防止无辜遗漏break语句边写代码边注释,修改代码同时修改相应注释,以保证注释与代码的一致性。更新代码须和更新注释保持同步。注释的内容要清晰、明了,含义明确,防止注释二义性,错误的注释不但无益反而有害。尽量避免在注释中使用缩写,特别是不常用缩写。明确类的功能,精确(而非近似)地实现类的设计。一个类仅实现一组相近的功能。可以认为是迪米特法则。
public MessageBean{ private String message; public String toString(){ return"message:" + message; } }DB、IO操作等需要使用结束close()的对象必须在try-catch-finally的finally中close()
try{ //... ... } catch(IOException e){ //... ... } finally{ try{ out.close(); } catch (IOException e){ //... ... } } 异常捕获后,如果不对该异常进行处理,则应该记录日志或者ex.printStackTrace()自己抛出的异常必须要填写详细的描述信息
throw new IOException("Writing data error!Data:" + data.toString());注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级
if ((a | b) && (a & c)) word = (high << 8) | low;避免使用不易理解的数字,用有意义的标识来代替。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量来代替。
private final static int OPEN = 0; private final static int CLOSE = 1; private final static int UNKNOW = -1; if (state = CLOSE){ state = OPEN; //... } 数组声明的时候使用int[] index,有利于提高可读性,而不要使用int index[]。