
(一)建表规约
1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是, 0 表示否)。说明: 任何字段如果为非负数,必须是 unsigned。注意: POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在<resultMap>设置从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,...
1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是, 0 表示否)。说明: 任何字段如果为非负数,必须是 unsigned。注意: POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在<resultMap>设置从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,...
1. 【强制】 隶属于用户个人的页面或者功能必须进行权限控制校验。说明: 防止没有做水平权限校验就可随意访问、 修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。2. 【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。说明: 中国大陆个人手机号码显示为:158****9119,隐藏中间 4 位,防止隐私泄露。3. 【强制】用...
1. 【强制】好的单元测试必须遵守 AIR 原则。说明: 单元测试在线上运行时,感觉像空气(AIR) 一样并不存在,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。A: Automatic(自动化)I: Independent(独立性)R: Repeatable(可重复)2. 【强制】单元测试应该是全自动执行的,并且...
1. 【强制】应用中不可直接使用日志系统(Log4j、 Logback) 中的 API,而应依赖使用日志框架SLF4J 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLo...
1. 【强制】 Java 类库中定义的可以通过预检查方式规避的 RuntimeException 异常不应该通过catch 的方式来处理,比如: NullPointerException, IndexOutOfBoundsException 等等。说明: 无法通过预检查的异常除外,比如,在解析字符串形式的数字时,不得不通过 catchNumberFormatException 来实现。正例: if (obj != null) {...}反例: try ...
1. 【强制】在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。说明:不要在方法体内定义: Pattern pattern = Pattern.compile(“规则”);2. 【强制】 velocity 调用 POJO 类的属性时,建议直接使用属性名取值即可,模板引擎会自动按规范调用 POJO 的 getXxx(),如果是 boolean 基本数据类型变量(boolean 命名不需要加 is...
1. 【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用// xxx 方式。说明: 在 IDE 编辑窗口中, Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释; 在 IDE 中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。2. 【强制】所有的抽象方法(包括接口中的...
1. 【强制】在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止; 在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使空代码。2. 【强制】在 if/else/for/while/do 语句中必须使用大括号。 即使只有一行代码,避免采用单行的编码方式: if (condition) statement...
1. 【强制】 获取单例对象需要保证线程安全,其中的方法也要保证线程安全。说明: 资源驱动类、工具类、 单例工厂类都需要注意。2. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。正例:public class TimerTaskThread extends Thread { public TimerTaskThread() { super.setName(&...
1. 【强制】 关于 hashCode 和 equals 的处理,遵循如下规则:1) 只要重写 equals,就必须重写 hashCode。2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。3) 如果自定义对象作为 Map 的键,那么必须重写 hashCode 和 equals。说明: String 重写了 hashCode 和 equals 方法...