JAVA程序编码规范(草案,供修改)

时间:2021-07-27 20:20:59

一、 目的:
本规范制定目的是为了统一编程风格,提高编程质量,提高开发,测试,维护的效率。

二、使用范围:
本规范只使用于用JAVA代码实现的Application、Applet、Servlet、EJB程序。不包括JSP。JNI的其他语言实现部分的程序。
本规范有效作用于永达公司各个部门提交的JAVA程序代码,包括程序实现,程序测试代码。
本规范有效作用时间:________________________

三、 词汇解释
本文包含“必须”, “不得”,“应该”,“可以”,“建议”“一般”等词汇

四、 一般规范
1、 所有程序实现toString()方法
2、 所有实现equals()方法的程序,必须实现hashCode()方法。
3、 不推荐实现clone()方法
4、 exit()
exit 除了在 main 中可以被调用外,其他的地方不应该调用。因为这样做不给任何代码代码机会来截获退出。一个类似后台服务地程序不应该因为某一个库模块决定了要退出就退出。        
5、 花括号采用如下格式
public void method(){
}
不采用
public void method
{
}

}必须为一行
所有采用花括号的地方必须采用这种方式。
6、 文件开始,package前必须注释,说明版权信息版本号,创建人,创建时间,修改人,修改时间,修改原因。
7、 class前必须有功能注释
8、 所有方法必须有注释,说明方法作用,输入参数,输出。
方法如果有异常抛出,必须注释说明异常抛出条件。以下为一例
/**
 * this method is for...
 * @param ackMessage String
 * @param tradMsg String
 * @return
 * @throws YDException condition
 * 
 */
9、 除?操作符外,不得一行有多个操作。
即不得在一行进行多个变量声明。
不得在一行进行多个变量赋值。
10、 花括号里的语句要缩进一个4个字符的宽度
11、 一个文件除可以拥有内部类外,不得由多个类组成。
12、不得出现无内容的;行

五、正文
1、包命名
所有文件必须存在于package中,不得以默认package方式提交。
Package形式可以如:项目名称.交易名称或者项目名称.交易名称.子交易名称;不得以更深层次或更浅层次包提交。
Package必须只由a-z字母,0-9数字构成,不得包含其他字符。所有字母必须小写。
2、import
I mport包按一下顺序:
a、jdk标准包
b、java扩展包(例如servlet,javamail,jce等)
c、使用的外部库的包(例如xml parser)
d、使用的项目的公共包
e、使用的模块的其他包
每一类import后面加一个换行。

例如:
import java.io.*;
import java.util.*;

import javax.servlet.*;
import javax.mail.*;

import org.apache.xml.*;

import net.ebseries.*;
import net.ebseries.util.*;

import net.ebseries.ebwebmail.*;

要按字母顺序排列
3、类命名
类名采用如NameOfClass格式,即类名第一个字符必须大写,且必须为A-Z字符,只可以由a-z,A-Z,0-9构成。若类名由多个单词组成,各单词第一个字符大写,其他字符小写。
长度不得超过14,不得少于5个字符。
建议能体现该类的作用。
4、方法
方法采用如getMethod()格式,建议采用动词+名词的格式,一般不要超过4个单词组成。方法的第一个字符必须小写,且必须为a-z字符。只可以由a-z,A-Z,0-9构成。若方法名由多个单词组成,各单词第一个字符大写,其他字符小写。
长度不得超过14,不得少于2个字符。
方法参数最多不得超过7个。
如果可能的话,使用和要赋值的字段一样的名字:
如:
SetCounter(int size){
    this.size = size;
}
方法行数不得超过250行,不包括注释,长行连行算一行。
5、异常
推荐原则:如果你不知道怎样使用这个异常,不要捕获它,而将它继续throw。
异常的捕获必须细化,只允许捕获try{}块产生的异常。
Catch{}块必须对捕获的异常做处理。
异常不允许嵌套。
如果方法没有异常会产生,不得抛出异常。
6、常量(final 变量)
所有常量必须全部大写。若有多个单词构成,单词间由下划线分开(_)。
7、变量
变量的第一个字符必须小写,且必须为a-z字符。只可以由a-z,A-Z,0-9构成。若变量名由多个单词组成,各单词第一个字符大写,其他字符小写。
长度不得超过14。
变量推荐最小化其使用范围,即方法变量>对象变量>类变量
8、空行,空格
空行,空格的使用目的是为了提高可读性。
方法之间必须有空行。
9、数组
必须采用byte[] buffer, 而不是采用byte buffer[]形式
10、关于缩进
缩进使用4个连续空格,不要在源文件中保存tab字符, 请注意调整所用的IDE工具,打开将tab转换为空格功能。
11、页宽
页宽应该设置为80字符. 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进4个空格。
12、操作符
操作符左右各用一个空格分隔。
例如:
int a = b;
if (a > 0);
13、SQL语句
代码中书写的sql语句要求sql关键字全部大写,表名和字段名小写。例如:
SELECT user_id, name FROM account WHERE user_id > ? AND depart = ? ORDER BY name
14、注释
public 和 protected的成员变量和方法必须写javadoc注释。超过1句以上的注释使用中文书写。对于代码多于10行的private方法也要写javadoc注释。
对于代码中的逻辑分支或循环条件需要书写注释,例如:
if (some condition){
//符合某个条件,应该这样处理
}
else{
//否则应该那样处理
}

五、 其他规范
1、对于IDE的使用
目前暂不限制开发工具的使用,但是最后提交的代码必须不依赖任何IDE,而需要可以使用ant完成所有的编译工作。一般提交的代码目录格式如下:
\
|_dist(存放输出的文件class文件)
|_lib(使用的库)
|_src(源代码)
|_docs(文档)
|_wwwroot(页面文件)
|_build.xml(ant的build文件)
|_changes.log(代码版本和修改的日志)

2、限制session的使用
在代码中使用session需要听取项目经理的意见,项目经理需要在设计文档中登记项目中所有使用到的session的名字和作用。

3、限制外部开发包的使用
开发员如果需要使用一个外部包需要听取项目经理的意见。在项目经理批准以前,严禁擅自使用一个外部的包。



9 个解决方案

#1


up

#2


谢谢,收到,->mybase

#3


我编的时候直接参考JB自动产生的代码
按照他的格式去编
不过和楼主说的格式好像差不多

#4


mark

#5


收藏

#6


5、 花括号采用如下格式
public void method(){
}
不采用
public void method
{
}


反对!! 下面那种不时更清晰吗!?

#7


STUDY

#8


我到觉得上面得清晰

#9


4、方法

不同意楼主意见,

我觉得按照SUN的规范,方法的第一个字母应为小写!!

#1


up

#2


谢谢,收到,->mybase

#3


我编的时候直接参考JB自动产生的代码
按照他的格式去编
不过和楼主说的格式好像差不多

#4


mark

#5


收藏

#6


5、 花括号采用如下格式
public void method(){
}
不采用
public void method
{
}


反对!! 下面那种不时更清晰吗!?

#7


STUDY

#8


我到觉得上面得清晰

#9


4、方法

不同意楼主意见,

我觉得按照SUN的规范,方法的第一个字母应为小写!!