基于 Alibaba 的 Java 开发手册编写

编程规约

命名风格

类名:UpperCamelCase,其余使用 lowerCamelCase,常量全部大写

抽象类使用 Abstract 开头,异常类使用 Exception 结尾,测试类以要测试的类的名称开始,以 Test 结尾

包名统一使用单数形式

在变量命名时,表示类型的名词放在结尾,如 nameList

设计模式应该体现出来

接口类中不要加任何修复符号

Service/DAO 层命名规约:

  • 获取单个对象:get

  • 获取多个对象:list,并复数结尾

  • 获取统计值用 count

  • 插入 insert

  • 删除 remove

  • 修改 update

  • 领域模型:

    • 数据对象:数据表名 + DO
    • 数组传输对象:业务领域相关的名称 + DTO
    • 展示对象:网页名称 + VO

OOP 规约

所有整型包装类对象之间值的比较,均使用 equals

BigDecimal 使用 compareTo() 方法比较

所有 POJO 类属性和 RPC 方法必须使用包装数据类型,局部变量使用基本数据类型

集合处理

Comparator 实现类要满足三个条件,注意考虑相等的情况

使用 entrySet 遍历 Map 类集合

注释规约

类、类属性、类方法的注释必须使用 Javadoc 规范

所有抽象方法必须指出该方法做什么事情,实现什么功能

特殊注释标记:代办事宜 TODO 和错误 FIXME

前后端规约

前后端交互的 API 需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体

如果返回的数据为空,则返回空数组 [] 或空集合 {}

服务器发生错误时,返回给前端的相应信息必须包括:

  • HTTP 状态码
    • 200 OK
    • 401 Unauthorized
    • 403 Forbidden
    • 404 NotFound
    • 500 InternalServerError
  • errorCode
  • errorMessage
  • 用户提示信息

工程结构

应用分层

应用分层

分层领域模型规约:

  • DO(Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象
  • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象
  • BO(Business Object):业务对象
  • VO(View Object):显示层对象