本文是对阿里巴巴的Java开发手册的笔记, 对其中的一些平时没有注意的细节进行记录, 并对一些内容补充细节和自己的理解.

命名风格

【强制】 类名使用UpperCamelCase风格, 但以下情形例外:DO / BO / DTO / VO / AO / PO / UID等

这些例外情况都是缩写词, 缩写词始终保持全大写.

【强制】 抽象类以Abstract或Base开头

【强制】 POJO类中的任何布尔类型的变量, 都不要加is前缀

由于各种框架对于布尔型变量可能生成is开头的get方法, 因此不建议加入is, 以免解析过程中产生冲突.

【强制】 包名统一使用小写, 点分隔符之间有且仅有一个自然语义的英语单词. 包名统一使用单数形式, 类名根据需要可以使用复数形式

【参考】 各层命名规约

方法含义 前缀 方法含义 前缀
获取单个对象 get 获取多个对象 list
获取统计值 count 插入数据 save / insert
删除数据 remove / delete 修改数据 update
领域模型 命名 备注
数据对象 xxxDO xxx为对应的表名
数据传输对象 xxxDTO xxx为业务领域相关名称
展示对象 xxxVO xxx为网页名称

【推荐】 单个方法的总行数不超过80行

一个方法写太长则可读性不好, 方法太过零散也不适合阅读. 因此需要把方法的长度控制在适当的范围内. 要分清楚主干代码和辅助代码. 辅助代码写成函数, 使主干逻辑保持清晰简洁.

OOP规范

【强制】 禁止使用构造方法BigDecimal(double)的方式把double值转化为BigDecimal对象.

double不能精确表示数字, 使用String类型构造函数可以保证数字与字面值完全一致

【强制】 定义数据对象DO类时, 属性类型要与数据库字段类型相匹配

不当的数据类型可能导致溢出, 从而导致错误

【强制】 所有的POJO类属性必须使用包装数据类型
【强制】 RPC方法的返回值和参数必须使用包装数据类型
【推荐】 所有的局部变量使用基本数据类型

包装类型可以设置为null, 从而提供额外的信息.

【强制】 定义DO/DTO/VO等POJO类时, 不要设定任何属性默认值

构造函数不包含参数, 但实际却设置了属性, 容易产生误解

最后更新: 2024年04月23日 00:19

版权声明:本文为原创文章,转载请注明出处

原始链接: https://lizec.top/2020/06/29/Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%E7%AC%94%E8%AE%B0/