目录
一、命名规范
1、Class命名:
大写字母开头而其他字母都小写的单词组成: public class StudentDetail
2、方法命名:
方法的名字用一个小写字母开头,峰谷形式。public String getStudentById
3、变量命名:
便量的名字用一个小写字母开头,峰谷形式。private String studentName;
4、静态常量命名:
Static Final 变量的名字都应该大写,并指出完整含义。
eg:Public static final String STUDENT_NAME = “Student name”,
5、变量参数命名:
变量的名字用一个小写字母开头,后面的单词用大写字母开头, 使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字。SetCounter (int size)
6、数组规范:
用byte[] buffer ,而不是 byte buffer[]
7、项目中命名规范:
使用mybatisPlus 为例
model层:
public class Student extends Model<Student>{}
mapper层:
public interface StudentMapper extends BaseMapper<Student>{}
service层:
public interface IStudentService extends IService<Student>{}
impl层
public class StudentServiceImpl extends ServiceImpl<StudentMapper,Student> implements IStudentService{}
controller层
public class StudentController extends BaseController{}
二、代码书写排版
1、短句代码:
不要把多个短语句写在一行,即一行只写一条语句。
2、算法操作:
进行算法操作,尽量使用如下形式:a+=b;而不使用 a=(c>d)?f:g 这种算法,改成用if条件分支判断。
3、行字符:
每行代码一般不超过80个字符,源代码一般不会超过这个宽度,并导致无法完整显示,但这一设置也可以灵活调整,在任何情况下,超长的语句应该在一个逗号或者一个操作符后折行,一条语句折行后,应该比原来的语句再缩进4个空格。
4、行缩进:
缩进应该是每行4个空格,不要在源文件中保存Tab 字符,在使用不同的源代码管理工具时 Tab 字符因为用户设置的不同而扩展为不同的宽度。
5、引用包导入:
Package 行要在 import 之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列,如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。
package com.smice.apps.royalty.action.admin
import java.io.*
import java.util.List
import com.smics.apps.royalty.domain.VendorCodeMapping;
6、多态函数:
多态函数应该用递增的方式写,参数多的写在后面
Public void paint (Sting s);
Public void paint (Sting s, int d);
7、{}语句格式
{}中的语句应该单独作为一行
8、判断语句格式:
If , for, Do,while,case,switch,default 等语句自占一行,且if,for,Do,while等语句的执行语句部分无论多少都要加{};
三、风格统一
1、固定常量:
所有固定字符串封装在Constants里面,方法里不要有硬编码
public final class Constants{
public static final String STU_NAME = "stu name";
}
调用时:Constants.STU_NAME
2、方法返回值:
一个方法返回List或Map或其他对象时,如果方法里没有抓到值要返回new ArrayList()或new HashMap().默认返回null。
3、Class注释:
Class顶部要有注释
/**
* @description: #描述
* @title: ${NAME} #标题名
* @projectName ${PROJECT_NAME} #项目名
* @author #替换成自己的姓名
* @date ${DATE} ${TIME} #日期
* @company # 公司名
*/
4、日志LOG
需要打log的地方用Log.info(“xxxxxx”),不要用System.out.println(“xxxxx”)
日志 @Slf4j 注解
用法:log.info( );
5、变量、方法名命名:
方法名必须有意义,杜绝String a,String b等无意义写法。
6、Class引用:
删除所有没有使用过的class引用
四、异常规范
1、错误日志
业务发生错误时,将错误记录到日志表中
2、空指针:
对数据进行判空处理,如果数据为空抛出异常
if (StrUtil.isBlank(studentId)) { throw new ServiceException(ExceptionEnum.ERROR); }
3、错误处理:
所有Service的方法都要抛出ServiceException,在Controller中去try catch,出错时要记录log并返回错误消息到页面
4、工具包:
判空使用工具包中的util去实现 ,如ObjectUtil.isEmpty, StrUtil.isBlank,ColUtil.isEmpty
5、保存数据接口:
除非特别必要,不要把保存数据接口与查询接口合并到一起,分开成2个独立的接口
6、Controller:
所有的Controller要继承WebController/BaseAction