java代码开发规范_java代码开发规范

Java代码开发规范

格式规范:

1、TAB空格的数量。编辑器上的TAB空格数量统一取值为4

2、换行, 每行120字符

3、if语句的嵌套层数3层以内

4、匿名内部类20行以内 ,太长的匿名内部类影响代码可读性,建议重构为命名的

(普通)内部类。

5、文件长度2000行以内

6、方法长度150行以内

7、逻辑上相关序代码与其前后之程序代码间应以空白行加以分隔;在注释段与程序

段、以及不同程序段插入空行。提高可读性

8、方法(构造器)参数在5个以内 ,太多的方法(构造器)参数影响代码可读性。

考虑用值对象代替这些参数或重新设计。

9、CC 度量值不大于10

解释:CC(CyclomaticComplexity)圈复杂度指一个方法的独立路径的数量,可以

用一个方法内if,while,do,for,catch,switch,case,?:语句与&&,||操作符的

总个数来度量。

10、NPath度量值不大于200

解释:NPath度量值表示一个方法内可能的执行路径的条数。

11、布尔表达式中的布尔运算符(&&,||)的个数不超过3个

命名规范:

(开发人员如果遇到以下未列举的类型,请书面通知相关管理人员,由管理人员集中更新列

表内容,不得擅自启用未经确定的新变量前缀)

包名必须全部用小写。

命名方式:业务领域名.子系统名.层名 如com.iteach.dao.weibo

类名以英文单词取名,首字母必须大写,多个英文单词以大写字母间隔,避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。类名中不允许'_'、 '-'等符号。[A4]

属性在类定义的开始,按照public,protected,package,private顺序放置。定义local变量尽量在那段代码的开始处,如方法的开始处。

如果是if,for,while段,尽量在左大括号"{"的下一行处定义要使用的local变量。

尽量用相同含义英文单词表示,不允许'_'、 '-'等符号,如:custName。第一个字母小写,中间单词的第一个字母大写。不要用_或&等符号作为第一个字母。 单字符的变量名一般只用于生命期非常短暂的变量。如:i,j,k,m,n一般用于int。如果变量是集合,则变量名应用复数,即以小写s结尾 。例如:

序号

变量名称

注    释

1

strFileName

"文件名"字符串类型

2

intFileCount

"文件总数"整型

3

strFames

多个"文件名"的集合

4

gMemory

全局变量

常量名均全部大写,单词间以'_'隔开。例如:

序号

常量名称

注 释

1

MAX_NUM

最大数

2

public static final String FUNCTION_LIST = "function_list";

方法命名采用"动作+属性" 的方法。并且,动作以小写字母开始,属性以大写字母开始。常用的动作有:is、get、set、add、 update、del等。

例如:getName、setName、isSysManager、saveXXX、mdfXXX、delXXX等。

规则名称

规则

说明

新增数据

addXXX

修改数据

updateXXX

删除数据

deleteXXX

查询数据

findXXX

getXXX

findUserByName() 获取单个

getUserByName()  获取所有

备注:

遇到缩写如XML时,仅首字母大写,即loadXmlDocument()而不是

loadXMLDocument()

为了基于接口编程,不采用首字母为I或加上IF后缀的命名方式,如

IBookDao,BookDaoIF。

页面部件名建议命名为:btnOK、lblName或okBtn、nameLbl

其中btn、lbl缩写代表按钮(Button)、标签(Label)。

注释规范:

(在类、方法开始之前需要添加中文注释,类和方法的注释采用Java自动生成的注释格式。)

1、类注释:

/**

* 类功能说明

* 类创建者 创建日期

*/

2、函数注释

/**

* 函数功能说明

* 创建者名字 创建日期

* 修改者名字 修改日期

* 修改内容

* @param 参数名称  参数类型 参数说明

* @return 返回值类型 返回值说明

*/

3、程序段注释

如果做过修改需加上修改者和日期   //修改者 修改日期 说明

或者

/**

*修改者 修改日期

*说明

*/

4、变量或属性注释

//说明

5、失效代码注释

由/*...*/界定,标准的C-Style的注释,专用于注释已失效的代码

注:没有意义的注释语句删掉,不留空的注释语句

备注建议的注释:(非下划线标注的规范建议使用,不强制)

循环语句和判断语句前必须注释。

特殊变量声明时需要注释。

如果方法允许Null作为参数,或者允许返回值为Null,必须在JavaDoc中说明。

注释中的第一个句子要以(英文)句号、问号或者感叹号结束。Javadoc生成

工具会将注释中的第一个句子放在方法汇总表和索引中。

为了在JavaDoc和IDE中能快速链接跳转到相关联的类与方法,尽量多的使用

@see xxx.MyClass,@see xx.MyClass#find(String)。

如果注释中有超过一个段落,用

分隔。

示例代码以

包裹。 
 

标识(java keyword, class/method/field/argument名,Constants) 以

包裹。

标识在第一次出现时以{@linkxxx.Myclass}注解以便JavaDoc与IDE中可以链

接。

如果该注释是废话,连同标签删掉它,而不是自动生成一堆空的标签,如空的

@param name,空的@return。

推荐的注释内容:

对于API函数如果存在契约,必须写明它的前置条件(precondition),后置条件

(postcondition),及不变式(invariant)。

对于调用复杂的API尽量提供代码示例。

对于已知的Bug需要声明。

在本函数中抛出的unchecked exception尽量用@throws说明。

代码质量不好但能正常运行,或者还没有实现的代码用//TODO: 或 //XXX:

声明存在错误隐患的代码用//FIXME:声明

异常处理:

重新抛出的异常必须保留原来的异常,即throw new NewException("message", e);

而不能写成throw new NewException("message")。

在所有异常被捕获且没有重新抛出的地方必须写日志。

如果属于正常异常的空异常处理块必须注释说明原因,否则不允许空的catch块。

框架尽量捕获低级异常并封装成高级异常重新抛出,隐藏低级异常的细节,方便

系统能够更好的跟踪运行情况。

如果一个层要抛出多个异常,那么所有自定义异常必须统一继承一个父类异常。

这样上层可以通过父类异常捕获。

编写细节建议规范:

1、 为了提高可读性,一般情况下,字符串的连接使用"+",而不是StringBuffer

中的方法。在考虑速度性能的时候才考使用StringBuffer。

2、(不强制)没有特殊原因,不要定义synchronized 的方法。而是在方法内实

际需要同步的代码段加入synchronized限定,如:

public void sharedMethod() {

String display = null;

synchronized( this ) {

display = mySharedObject.getHelloWorld();

}

System.out.println( display );

}

3、   捕捉例外的标准书写规则如下:

try{

// some stuff

} catch ( FileNotFoundException fnfe ) {

// some stuff

} finally {

// some stuff

}

例外的变量名统一规定为例外类名中大写字母的组合。

4、  (不强制)对于一个方法或实例化类调用是否成功,不采用返回boolean值来判

断,而采用捕捉例外的方法,如:

Order m_order = new Order();

try {

m_order.init();

} catch ( OrderNotFoundException onfe ) {

// some stuff

posted on 2012-09-11 16:51 Nirvana reborn 阅读(4535) 评论(3)  编辑  收藏 所属分类: ★项目架构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值