规范开发手册

1.获取单个对象的方法用 get 做前缀。
2.获取多个对象的方法用 list 做前缀,复数形式结尾如:listObjects。
3.获取统计值的方法用 count 做前缀。
4.插入的方法用 save/insert 做前缀。
5.删除的方法用 remove/delete 做前缀。
6.修改的方法用 update 做前缀。

1.【强制】定义数据对象 DO 或 PO 类时,属性类型要与数据库字段类型相匹配。
正例:数据库字段的 bigint 必须与类属性的 Long 类型相对应。
反例:某个案例的数据库表 id 字段定义类型 bigint unsigned,实际类对象属性为 Integer,
随着 id 越来越大,超过 Integer 的表示范围而溢出成为负数。

2.【强制】日期格式化时,传入 pattern 中表示年份统一使用小写的 y。
说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year
(JDK7 之后引入的概念),意思是当天所在的周属于的年份,一周从周日开始,周六结束,
只要本周跨年,返回的 YYYY 就是下一年。

3.【强制】在日期格式中分清楚大写的 M 和小写的 m,大写的 H 和小写的 h 分别指代的意义。
说明:日期格式中的这两对字母表意如下:yyyy-MM-dd HH:mm:ss
1)表示月份是大写的 M;
2)表示分钟则是小写的 m;
3)24 小时制的是大写的 H;
4)12 小时制的则是小写的 h。

4.【强制】关于 hashCode 和 equals 的处理,遵循如下规则:
1)只要重写 equals,就必须重写 hashCode。
2)因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对
象必须重写这两个方法。
3)如果自定义对象作为 Map 的键,那么必须覆写 hashCode 和 equals。
说明:String 因为重写了 hashCode 和 equals 方法,所以我们可以愉快地使用 String 对象
作为 key 来使用。

5.【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator
方式,如果并发操作,需要对 Iterator 对象加锁。
正例:
List list = new ArrayList<>();
list.add(“1”);
list.add(“2”);
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (删除元素的条件) {
iterator.remove();
}
}
反例:
for (String item : list) {
if (“1”.equals(item)) {
list.remove(item);
}
}
说明:以上代码的执行结果肯定会出乎大家的意料,那么试一下把“1”换成“2”,会是同
样的结果吗?

6.【推荐】单个方法的总行数不超过 80 行。
说明:包括方法签名、结束右大括号、方法内代码、注释、空行、回车及任何不可见字符的
总行数不超过 80 行。
正例:代码逻辑分清红花和绿叶,个性和共性,绿叶逻辑单独出来成为额外方法,使主干代
码更加清晰;共性逻辑抽取成为共性方法,便于复用和维护。

7.【强制】并发修改同一记录时,避免更新丢失,需要加锁。要么在应用层加锁,要么在
缓存加锁,要么在数据库层使用乐观锁,使用 version 作为更新依据。
说明:如果每次访问冲突概率小于 20%,推荐使用乐观锁,否则使用悲观锁。乐观锁的重试
次数不得小于 3 次。

8.【强制】在一个 switch 块内,每个 case 要么通过 continue/break/return 等来终止,要
么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个
default 语句并且放在最后,即使它什么代码也没有。
说明:注意 break 是退出 switch 语句块,而 return 是退出方法体,
当 switch 括号内的变量类型为 String 并且此变量为外部参数时,必须先进行
null 判断。

9.【强制】主键索引名为 pk_字段名;唯一索引名为 uk_字段名;普通索引名则为 idx_字段
名。
说明:pk_ 即 primary key;uk_ 即 unique key;idx_ 即 index 的简称

10.【强制】当某一列的值全是 NULL 时,count(col)的返回结果为 0,但 sum(col)的返回结
果为 NULL,因此使用 sum()时需注意 NPE 问题。
正例:可以使用如下方式来避免 sum 的 NPE 问题:SELECT IFNULL(SUM(column), 0) FROM table;

11.【强制】数据订正(特别是删除或修改记录操作)时,要先 select,避免出现误删除,确
认无误才能执行更新语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值