| name | alibaba-java-guidelines |
| description | 阿里巴巴Java开发规范(黄山版)编码指导技能。当用户在编写Java代码、进行代码审查、设计数据库表结构、处理异常日志、编写单元测试、设计系统架构时,必须使用此技能来确保代码符合阿里巴巴Java开发规范。触发词:Java开发规范、阿里规范、p3c、代码规范、命名规范、Java编码、单元测试规范、数据库设计规范、并发编程、异常处理规范、日志规范。适用于所有Java项目开发,帮助大模型生成符合规范的代码。 |
阿里巴巴Java开发手册(黄山版)编码规范技能
概述
本技能基于《阿里巴巴Java开发手册(黄山版)》,指导在Java开发中遵循统一的编码规范。规约分三级:
- 【强制】:必须遵守,违反会导致严重后果
- 【推荐】:尽量遵守,提升代码质量
- 【参考】:理解原则,结合实际情况使用
规范体系总览
本技能涵盖七大维度,详细规则见各参考文件:
| 维度 | 文件 | 内容 |
|---|
| 一、编程规约 | references/01-programming.md | 命名、常量、格式、OOP、日期、集合、并发、控制语句、注释、前后端、其他 |
| 二、异常日志 | references/02-exception-logging.md | 错误码、异常处理、日志规约 |
| 三、单元测试 | references/03-unit-testing.md | 单元测试规范 |
| 四、安全规约 | references/04-security.md | 安全编码规范 |
| 五、MySQL数据库 | references/05-mysql.md | 建表、索引、SQL、ORM映射 |
| 六、工程结构 | references/06-project-structure.md | 应用分层、二方库依赖、服务器配置 |
| 七、设计规约 | references/07-design.md | 系统设计规范 |
快速参考:最高频强制规则
命名规范(必读)
- 类名用
UpperCamelCase(DO/DTO/BO/VO例外)
- 方法名、变量名用
lowerCamelCase
- 常量全大写,单词间下划线:
MAX_STOCK_COUNT
- 包名全小写、单数形式
- 抽象类以
Abstract/Base 开头;异常类以 Exception 结尾;测试类以 Test 结尾
- POJO布尔类型变量不加
is 前缀
- Service/DAO 实现类后缀
Impl
代码格式(必读)
- 4空格缩进,禁止使用Tab
- 单行不超过120字符
- 单方法不超过80行
- 大括号不换行:
if (x) {
- 运算符两侧加空格
OOP关键规则(必读)
- 覆写方法必须加
@Override
- 不能使用
== 比较Integer,必须用 equals()
- 浮点数比较用
BigDecimal 或误差范围
- 禁止
new BigDecimal(double),用 new BigDecimal("0.1") 或 BigDecimal.valueOf(0.1)
- POJO类属性必须用包装类型,局部变量用基本类型
- POJO必须写
toString() 方法
- Object的
equals 用常量在前:"test".equals(param) 而非 param.equals("test")
并发关键规则(必读)
- 禁止用
Executors 创建线程池,必须用 ThreadPoolExecutor
SimpleDateFormat 不能是static,或用 ThreadLocal;推荐JDK8 DateTimeFormatter
ThreadLocal 必须在 finally 中 remove()
- 双重检查锁中目标属性必须声明为
volatile
集合关键规则(必读)
- 判空用
isEmpty() 而非 size() == 0
foreach 循环中禁止 remove/add,用 iterator
toArray 必须传入 new String[0]
Collections.emptyList() 返回的是不可变集合
如何使用本技能
生成Java代码时,按照以下步骤:
- 命名阶段:参照
references/01-programming.md 的命名风格部分
- 代码实现:参照对应的OOP规约、集合处理、并发处理规则
- 数据库操作:参照
references/05-mysql.md
- 异常处理:参照
references/02-exception-logging.md
- 安全相关:参照
references/04-security.md
当用户要求审查代码时,逐项检查上述规范并给出具体改进建议,标注违反的规则等级(强制/推荐/参考)。