编码规范(自己的要求啦)

1 . 为什么要有编码规范

编码规范对于程序员而言尤为重要,有以下几个原因:

- 一个软件的生命周期中, 80% 的花费在于维护;

- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护;

- 编码规范可以改善软件的可读性,可以让程序员尽快并彻底地理解新的代码;

- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误;

2. 编码规范

package java.test;

import java.test.test1.TestClass;

/**

  • Class description goes here.

  • @version 1.82 18 Mar 1999

  • @author Firstname Lastname

*/

public class Son extends TestClass {

/* classVar1 documentation comment /

public static int classVar1;

/**

  • classVar2 documentation comment that happens to be

  • more than one line long

*/

private static Object classVar2;

/* instanceVar1 documentation comment /

public Object instanceVar1;

/* instanceVar2 documentation comment /

protected int instanceVar2;

/* instanceVar3 documentation comment /

private Object[] instanceVar3;

/**

  • …constructor Son documentation comment…

*/

public Son () {

// …implementation goes here…

}

/**

  • …method doSomething documentation comment…

*/

public void doSomething() {

// …implementation goes here…

}

/**

  • …method doSomethingElse documentation comment…

  • @param someParam description

*/

public void doSomethingElse(Object someParam) {

// …implementation goes here…

}

}

3. 编程实践

- 若没有足够理由,不要把实例变量或类变量声明为公有;

- 类变量 名 不要以下划线开头;

- 最小化变量的作用域;

- 尽量不要使用静态变量;

- 所有的变量名 / 方法名都应该是见明知意的,不要使用 temp , l , x 等变量名;

- 变量定义的时候一定要初始化;

- 不要硬编码,即使它只使用了一次;

- 在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题;

- 完成代码的时候,一定要和式样一致;

- 更改的画面一定要在至少在中、日和英文系统(各一个)的真实环境下进行测试;

- 容器类( map 或 list )在使用之前一定要保证它的正确初始化(里面没有垃圾数据);

- 提交代码之前要充分的 CDI ,尽量进行交叉 review ,而且 review 者最好是不懂改造点的人;

- 提交代码之前要比较差分,确保提交的 source 是正确的;

- 不要将测试数据提交到数据库中;

- 在做 GUI 的时候,只要有按钮点击,并出现别的画面的时候,必须考虑多重启动的问题;

- 如果编写的是数据类的话,要完成它的 toString 方法和 clone 方法;

- 代码在 20 行左右或者关键的地方必须出现注释;

- 不要出现 3 重或者 3 重以上的循环;

- 方法尽量控制在 20 到 100 行之内;

- 一行的字符个数不要超过 80 个;

- 使用空行来分割或组织代码,推荐在方法中使用 1 行,方法见 2 行,不同部分 3 到 4 行;

- 不要使用 tab 键,如果使用的话,在 eclipse 中将 tab 映射成 4 个 space ;

- 尽量不要 copy/paste ,尽量使用继承或重构的方式共享相同的代码;

- 要是 copy/paste ,注意更新注释;

- 在类中, public 方法必须写 javadoc ,还要注意方法改变后同时更新注释或 javadoc ;

- 方法的制限和约定一定要在 javadoc 中写清楚;

- 注释一定要简明扼要,不要只是代码的重复;

- 不要编写只有自己能看懂的代码,简单就是最好的;

- 不要使用代码生成工具生成的代码并改造它;

- 程序的关键部分和异常都要出好 trace ;

- 一个函数只使用一个 return , if else 中的各个分支不要遗漏, case 不要忘记 break ;

- 一定不要将重要的东西保存在桌面上;

- 不要出现 e.printStackTrace()/System.out.println() ,可将其输出到 log 中;

- 无用的代码一定要删除;

- 一定要处理异常;

- 一定要在资源使用完后将其释放,不如 file , socket ,数据库连接等;

- for , while 等语句后面都要加上大括号;

- 给自己的代码编写单元测试项,编写的时候不要改动被测试项的代码,如果要改,使用反射;

- 方法开始的时候,一定要检查参数的有效性;

- 返回零长度的数组比返回 null 好;

- 注意按引用传递和按值传递的区别;

参考资料:

1. http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

2. http://www.huihoo.org/code/java_code_conventions.html#b1