最近新团队需要需要整一套适合java代码规范,基于阿里java开发手册规范一下代码规范。
1、【强制】类、类属性、类方法的注释必须使用javadoc规范,使用/*内容/格式,不得使用//xxx方式。
2、【强制】所有的抽象方法(包括接口中的方法)必须使用javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
3、【强制】所有的类都必须添加创建者和创建日期。
4、【强制】方法内部单行注释在被注释语句上另起一行,使用//注释,方法内部多行注释使用/* */注释,注意与代码对齐。
5、【强制】所有的枚举类型必须要有注释,说明每个数据项的用途。
6、【推荐】在方法内部有优化项和需要多方面考虑的地方加上注释描述,方便后续迭代时思路恢复和充分考量。
7、【推荐】注释内容能够准确反映设计思路和代码逻辑;能够描述业务含义,使别的程序员能够迅速了解到代码背后的信息。
1、代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑等的修改。
2、旧注释没有使用上述规范,如果涉及方法修复需要补充注释,并完善注释信息。
3、特殊注释标记,要注明标记人和标记时间。并且要及时处理这些标记,通过标记扫描,经常清理此类标记。
IDEA提供注释模板,可以更方便我们生成注释
类注释模板:
1、File–>settings–>Editor–>File and Code Templates–>Files
我们选择Class文件(当然你要设置接口的还也可以选择Interface文件)
也可以使用如下,全局文件格式
javaDoc 标签
(1)@BelongsProject:当前项目的名称
(2)@BelongsPackage:当前包的名称
(3)@Author:作者姓名(可以写死,写成你的名字)
(4)@CreateTime:该类创建的时间
(5)@Description:对该类的描述(该类的功能)
(6)@Version:设置版本号,一般新创建的类都是1.0版本,这里写死就可以了
参数:
(1)${NAME}:设置类名,与下面的${NAME}一样才能获取到创建的类名
(2)TODO:代办事项的标记,一般生成类或方法都需要添加描述
(3)${USER}、${DATE}、${TIME}:设置创建类的用户、创建的日期和时间,这些事IDEA内置的方法,还有一些其他的方法在绿色框标注的位置,比如你想添加项目名则可以使用${PROJECT_NAME}
【推荐格式】
/**
* @Description:
* @author liuxxxxx
* @date ${DATE} ${TIME}
*/
方法注释模板:
IDEA还没有智能到自动为我们创建方法注释,这就是要我们手动为方法添加注释 /**+Enter
1、File–>Settings–>Editor–>Live Templates
新建模板:命名为*
因为IDEA生成注释的默认方式是:/*+模板名+快捷键(比如若设置模板名为add快捷键用Tab,则生成方式为/*add+Tab)
点击模板页面最下方的警告,来设置将模板应用于那些场景,一般选择EveryWhere–>Java即可
(如果曾经修改过,则显示为change而不是define)
**
* @Description $desc$
* @author liuxxxx
* @date $DATE$ $TIME$
**/
【推荐格式2】:有方法入参和返回值描述
**
* @Description $desc$ $param$ $return$
* @author liuxxxxx
* @date $DATE$ $TIME$
**/
配置变量
为了更趋向于javaDoc风格,可以配置 defatult value配置变量值格式化脚本
JavaDoc格式的需要自定义参数以及返回值的实现方式
获取参数实现方式:
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())
返回值实现方式:
groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return ' + \"${_1}\"", methodReturnType())
使用: /*+Enter
效果:
/**
* @Description
* @param id
* @return cn.com.xxx.DetailResponse
* @author liuxxxx
* @date 2022/6/10 11:09
**/