后端开发规范

1. Java开发规范

1.1. 命名风格:

  1. 【强制】抽象类命名以Abstract或Base开头,异常命名以Exception结尾,测试类以它要测试的类名称开始Test结束

  2. 【强制】POJO类中布尔类型的变量,都不能加is, 否则框架解析会出现序列化错误,比如:isDelete

  3. 【强制】接口中的方法和属性不要加任何修饰符号(public也不要加),保持代码整洁,并且加上有效的doc注释,尽量别在接口里定义常量

  4. 【强制】枚举类名建议加上ENUM后缀

  5. 【推荐】如果模块、类、接口使用了设计模式,在命名时需要体现出设计模式,如:OrderFactory, LoginProxy, ResourceObserver

  6. 【推荐】各层命名规范

    1. Service/Dao命名规范
      1. 获取单个对象的方法用get做前缀
      2. 获取多个对象的方法用list做前缀
      3. 获取统计值的方法用count做前缀
    1. 领域层命名规范
      1. 数据对象:xxxDo
      2. 数据传输对象:xxxDTO
      3. 展示对象: xxxVO
      4. POJO 是DO、DTO、VO、BO的统称,禁止命名为xxxPOJO

1.2. 常量定义:

  1. 【强制】long或者Long初始赋值时,不能使用小写的l,小写的容易与数字1混淆。如:Long a = 2l; 2l是数字21还是Long类型的2?
  2. 【强制】不要用一个常量类维护所有常量,而是应该按常量功能分类,如缓存的放在CacheConst下,系统配置的放在ConfigConst下

1.3. 数据类型定义

  1. 【强制】所有的POJO类必须使用包装数据类型(包装类型的默认值为null,提醒使用者自己赋值)
  2. 【强制】RPC方法的返回值和参数都必须使用包装数据类型(包装类型的默认值为null,RPC调用失败时,为null可以表示额外的信息)
  3. 【推荐】所有的局部变量都使用基本数据类型(基本数据类型的默认值为对应类型的默认值)

1.4. 其他

  1. 当一个类有多个构造方法或者同名方法时,应该按顺序放在一起(public>protect>private)
  2. 方法的返回值如果是“List、Set、Map”时,不允许返回null,而是返回Clollections底下的单例对象
  3. 在使用平台资源,如短信,邮件,电话,下单,支付,必须实现正确的防重放限制,如:数量限制,验证码校验,避免被滥刷
  4. 在发帖,评论,发送即时消息等用户生成内容的场景,必须实现防重刷,文本内容违禁词过滤等风控策略
  5. 不建议在循环中查询数据、新增或更新,会增加数据库查询负载,当SQL性能差时会导致长事务或锁等待,改用批量查询后使用Map匹配,批量新增和更新
  6. 声明式事务注解,注意事务的范围和传播性
  7. 非特殊情况,禁用内存分页
  8. 查询的时候尽量带上索引,来做唯一性查询

2. mysql数据库规范

  1. 表达是否概念的字段必须使用is_xxx的方式命名,数据类型为 undesigned_tinyint(1表示是, 0表示否), 如:is_deleted, 任何字段类型为非负数必须是undesigned
  2. 小数类型为decimal禁止使用float或者dubble,避免精度损失
  3. 超过3个表禁止join
  4. 不要使用count(列名)替代count(), 二者结果不同,count()会统计值为NULL的行,count(列名)不会


后端开发规范
http://example.com/后端开发规范/
作者
Panyurou
发布于
2025年5月6日
许可协议