开发规范
一 命名规则
编程命名方式:
Camel:首个单词的首字母小写,其余单词的首字母大写;例如userInfo。
Pascal:每个单词的首字母大写;例如UserInfo。
类名:
规则:Pascal
例子:UserInfo
常量:
规则:全部大写
实例与描述:全部大写,单词间以下划线隔开
例子:public static final USER_NAME = “JACK”;
接口:
规则:Pascal
实例与描述:IUserService 注:以I为前缀开始,后接Pascal命名
方法:
规则:Camel
实例:updateUserPwd(长度不超过24字母,以动宾短语的形式命名)
参数:
规则:Camel
实例:userName(长度不超过18字母)
局部变量:
规则:Camel
实例与描述:字符串类型,必须以str开头,例如:strUserName = “hh”;整型类型,必须以i、j开头,例如:iUserAge = 120;
setter\getter方法:
规则:统一由eclipse开发工具进行生成。
包命名:
规则:包名小写,一般用能够描述清楚的一个单词即可。
例如:com.platform.ims.controller.worker//创业视图处理类
二 排版规范
统一使用同一开发工具eclipse4.5版本,并且统一引入shxtCodeProfile.xml代码规范样式的xml。通过快捷键ctrl+shift+F,进行统一规范代码样式。
三 注释规范
Java文件注释内容:
在pacakage之前进行编写如下形式的内容,每次进行Svn代码提交,将本次的内容(蓝色部分)填写到注释中。注释的形式如下:
/*
* 描述: MMSC V100R002 Relay 通用日志系统
* 创建人: 张三
* 创建时间:2001-02-16
* 修改内容:新增
* 修改人: 李四
* 修改时间:2001-02-26
* 修改内容:。。。。。。
* 修改人: 王五
* 修改时间:2001-03-25
* 修改内容:。。。。。。
*/
Java类和接口注释内容:
在package之后和class之前进行编写,类的注释主要是一句话功能简述、功能详细描述。同时需要列出:版本号、生成日期、作者、内容、功能、与其它类的关系等。 如果一个类存在Bug,请如实说明这些Bug。注释形式如下:
/**
* 〈一句话功能简述〉
* 〈功能详细描述〉
* @author [作者]
* @version [版本号, YYYY-MM-DD]
* @see [相关类/方法]
*/
说明:描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,@deprecated 表示不建议使用该类或者接口。
示例如下:
/**
* LogManager 类集中控制对日志读写的操作。
* 全部为静态变量和静态方法,对外提供统一接口。分配对应日志类型的读写器,
* 读取或写入符合条件的日志纪录。
* @author 张三,李四,王五
* @version 1.2, 2001-03-25
* @see LogIteraotor
*/
Java成员变量注释内容:
写在成员变量之上,说明:成员变量的意义、目的、功能,可能被用到的地方。注释形式如下:
//注释内容
private String logType;
Java类和接口的方法注释内容:
列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。
注释形式如下:
/**
* 〈一句话功能简述〉
* 〈功能详细描述〉
* @param [参数1] [参数1说明]
* @param [参数2] [参数2说明]
* @return [返回类型说明]
* @exception/throws [违例类型] [违例说明]
* @see [类]
* @deprecated
*/
说明:@param 说明参数类型、用途;@exception或throws 列出可能仍出的异常;@deprecated 表示不建议使用该方法。
Java方法中内部变量注释内容:
在局部变量之上,需要与变量排版同步,注释形式如下:
public void example( )
{
// 注释变量一,用于.....
CodeBlock One
}
注意:(1)注释的语言必须统一使用中文进行描述(包含中文标点),尽量保证每隔3-4行有相关的注释说明;(2)避免在一行代码或表达式的中间插入注释;(3)通过对方法、变量、类、接口等正确的命名以及合理地组织代码的结构,使代码成为自注释的;(3)对于一些特殊的复杂的代码进行说明(例如标记位:1,提交审核;2,通过审核;3,审核打回)。
四 业务要求
POJO实体类名:必须以VO结尾,必需重写toString类(打印出属性值的详细信息);
Mybatis接口名:必须以VOMapper结尾,同时相应的xml文件也要以XXXXVOMapper.xml形式展现;
Controller类:尽量不允许出现异常抛出,或者try、catch 处理异常;尽量不允许写业务逻辑处理(全部写在service层中),做到简洁明了。
DAO/Mapper 类:声明方法时,查询以query\find\get为开头,其中query、find查询结果返回为List、Array,而get返回实体类。变更以update为开头,增加以add为开头,删除以delete开头,尽量不允许出现其他的单词,以达到实现微SQL的形式,在增删改尽量抛出MysqlException(FSCAppException)异常。
Service类:处理Controller\Mapper来的数据进行逻辑判断,同时处理异常(try-catch方式)。
Log4j日志:要求关键的方法,必须使用log.info\debug,输出相应的变量和返回结果的信息,尽量进入方法内容用debug进行输出,同时做到4-5行,有日志输出。
代码规模:
代码规范内容 |
最大规模 |
备注 |
|
继承层次 |
4层 |
|
|
类的行数 |
1200行 |
|
|
类的属性 |
20个 |
|
|
类的方法 |
24个 |
|
|
方法参数 |
10个 |
|
|
方法行数 |
45行 |
|