Java 开发手册
基于 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):显示层对象