0
点赞
收藏
分享

微信扫一扫

开发规范

跨应用的共享常量,通常是client..jar中的constant目录下。

单个方法的总行数不超过80行;

一行不超过120个字符,超过就换行,第二行缩进4个字符;

禁止使用类对象去访问静态变量或方法,使用类名来访问,节约解析成本;

外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用产生方法影响。接口过时时必须加@Deprecated注解,并清晰的说明采用的新接口或新服务是什么;

所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。

构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中;

使用索引访问用 String 的 split 方法得到的数组时,需做最后一个分隔符后有无 内容的检查,否则会有抛 IndexOutOfBoundsException 的风险。

类成员与方法访问控制从严:

1) 如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。

2) 工具类不允许有 public 或 default 构造方法。

3) 类非 static 成员变量并且与子类共享,必须是 protected。

4) 类非 static 成员变量并且仅在本类使用,必须是 private。

5) 类 static 成员变量如果仅在本类使用,必须是 private。 

6) 若是 static 成员变量,必须考虑是否为 final。

7) 类成员方法只供类内部调用,必须是 private。

8) 类成员方法只对继承类公开,那么限制为 protected。

线程资源必须通过线程池提供,不允许在应用中自行显式创建线程;

SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。

如果是 JDK8 的应用,可以使用 Instant 代替 Date,LocalDateTime 代替 Calendar, DateTimeFormatter 代替 SimpleDateFormat

少用 if-else 方式;

远程调用返回对象时,一律要求进行空指针判断,防止 NPE;

使用 JDK8 的 Optional 类来防止 NPE 问题;

对于公司外的 http/api 开放接口必须 使用“错误码”;而应用内部推荐异常抛出;跨应用间 RPC 调用优先考虑使用 Result 方式,封 装 isSuccess()方法、“错误码”、“错误简短信息”;

可以使用 warn 日志级别来记录用户输入参数错误的情况;

error 级别只记录系统逻辑出错、异常等重要的错误信息;

表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint ( 1 表示是,0 表示否)。

主键索引名为 pk_字段名;唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。

小数类型为 decimal,禁止使用 float 和 double。

表必备三字段:id, gmt_create, gmt_modified。其中 id 必为主键,类型为 unsigned bigint、单表时自增、步长为 1。gmt_create, gmt_modified 的类型均为 date_time 类型,前者现在时表示主动创建,后者过去分词表示被 动更新。

表的命名最好是加上“业务名称_表的作用”;

库名与应用名称尽量一致。

单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表;

in 操作能避免则避免,若实在避免不了,需要仔细评估 in 后边的集合元素数量,控 制在 1000 个之内;

POJO 类的布尔属性不能加 is,而数据库字段必须加 is_,要求在 resultMap 中进行 字段与属性之间的映射。

sql.xml 配置参数使用:#{},#param# 不要使用${} 此种方式容易出现 SQL 注入。

举报

相关推荐

0 条评论