编码规范(自己的要求啦)
来源:互联网 发布:堡垒机网络部署案例 编辑:程序博客网 时间:2024/04/30 14:51
1. 为什么要有编码规范
编码规范对于程序员而言尤为重要,有以下几个原因:
- 一个软件的生命周期中,80%的花费在于维护;
- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护;
- 编码规范可以改善软件的可读性,可以让程序员尽快并彻底地理解新的代码;
- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误;
2.编码规范
package java.test;
import java.test.test1.TestClass;
/**
* Classdescription goes here.
*
* @version 1.82 18 Mar 1999
* @author Firstname Lastname
*/
public class Son extends TestClass {
/**classVar1 documentation comment */
publicstatic int classVar1;
/**
*classVar2 documentation comment that happens to be
* morethan one line long
*/
privatestatic Object classVar2;
/**instanceVar1 documentation comment */
publicObject instanceVar1;
/**instanceVar2 documentation comment */
protectedint instanceVar2;
/** instanceVar3documentation comment */
privateObject[] instanceVar3;
/**
*...constructor Son documentation comment...
*/
public Son() {
//...implementation goes here...
}
/**
*...method doSomething documentation comment...
*/
publicvoid doSomething() {
//...implementation goes here...
}
/**
*...method doSomethingElse documentation comment...
* @paramsomeParam description
*/
publicvoid 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
- 编码规范(自己的要求啦)
- perl:编码规范;严格要求自己
- FLEX编码规范(公司要求)
- 编码质量与规范要求
- 规定自己的Java编码规范
- 自己用的C++编码规范
- C++ 编码规范(给自己定的)
- 基于W3C的页面制作规范[具体页面编码要求]
- Objective-C编码规范和要求
- 自己整理的编码规范总结。(个人觉得很受用)
- C语言编码规范--->自己需要注意的项
- JAVA编码规范中关于sql语句规范要求
- 对自己的要求
- 对自己的要求
- 对自己的要求
- 对自己的要求
- 对自己的要求
- servlet规范要求:request的缺省编码必须是iso-8859-1
- 《开源合辑-(软件开发->框架)之(Delphi/Kylix)》 (2)
- win2003服务器不允许下载.exe和.ISO文件的设置方法
- System.Runtime.Remoting.Channels
- 《开源合辑-(软件开发->框架)之(Delphi/Kylix)》 (3)
- 《开源合辑-(企业应用)之(Delphi/Kylix)》
- 编码规范(自己的要求啦)
- 《开源合辑-(安全)之(Delphi/Kylix)》 (1)
- flex自定义Log的输出,重写隐藏方法
- public TcpChannel
- 女人永远都不会懂的12件事
- 《开源合辑-(安全)之(Delphi/Kylix)》 (2)
- Linux共享内存详解(上)
- sorted as raw strings, not alphanumerics 的个人理解?
- 用户信息验证基类