代码规范与最佳实践
引用文件
本文引用的文件
- pom.xml
- README.md
- GlobalExceptionHandler.java
- LogConstants.java
- OperateLogDO.java
- ApiAccessLogDO.java
- package-info.java(infra模块)
- package-info.java(common模块)
- CodegenEngine.java
- CodegenBuilder.java
- AdaptiveFieldMatcher.java
- RuleLiteflowChainDO.java
- RuleLiteflowChainCacheDTO.java
- RuleBusinessApiServiceImpl.java
- RuleRunUtil.java
- UotaDetailDO.java
- application.yaml(System)
- application.yaml(Blacklist)
- application.yaml(Launcher)
- application.yaml(Device)
- application.yaml(BPM)
目录
引言
本规范文档面向 yudao-cloud 项目的开发团队,系统化梳理 Java 编码规范、模块化开发规范、Spring Boot 项目结构规范、异常与日志处理规范、代码审查清单与质量检查标准,并结合仓库中的真实实现给出落地建议与示例路径,帮助团队统一风格、提升可维护性与协作 效率。
项目结构
yudao-cloud 采用多模块聚合工程,顶层 POM 管理版本与插件,各功能域以 yudao-module-* 与 yudao-framework-* 模块形式组织,形成“网关 + 基础能力 + 业务模块”的分层架构。
图表来源
章节来源
核心组件
- 全局异常处理:统一将异常翻译为通用返回,并记录错误日志,便于定位问题。
- 日志与审计:操作日志与 API 访问日志模型清晰,字段覆盖请求上下文与执行结果。
- 代码生成:基于 Velocity 模板的代码生成器,统一生成 Controller/Service/Mapper/VO 等文件。
- 规则引擎:基于 LiteFlow 的动态规则链,支持缓存、分布式锁与审批绑定。
- 任务与 OTA:设备升级包元数据模型,体现审批与业务数据的结合。
章节来源
- GlobalExceptionHandler.java
- OperateLogDO.java
- ApiAccessLogDO.java
- CodegenEngine.java
- RuleLiteflowChainDO.java
- UotaDetailDO.java
架构总览
系统采用微服务架构,网关统一入口,后端服务按业务域拆分,基础设施模块提供运维与研发工具,核心业务模块围绕系统管理、设备管理、运营、黑名单、任务与 OTA、规则引擎展开。
图表来源
章节来源
详细组件分析
Java 编码规范
- 命名约定
- 类名:帕斯卡命名法(如 RuleLiteflowChainDO)
- 方法名:驼峰命名法(如 buildExceptionLog)
- 常量:大写下划线(如 REQUEST_PARAMS_MAX_LENGTH)
- 缩进与格式
- 使用 Maven 编译插件统一参数,保证参数名可见与一致性
- 注释标准
- 类注释:说明职责与用途(如 GlobalExceptionHandler 的“全局异常处理器”)
- 方法注释:说明输入、输出、异常与边界条件(如 serviceExceptionHandler 的业务异常处理)
- 字段注释:说明业务含义与约束(如 ApiAccessLogDO 的字段注释)
章节来源
模块化开发规范
- 包结构划分
- infra 模块:以 /infra/ 开头的 Controller URL,以 infra_ 开头的表名,避免与其他模块冲突
- 接口设计原则
- 明确 Admin 与 App 两类接口的包划分,分别对应管理端与应用端
- 异常处理规范
- 全局异常处理器统一翻译 ServiceException 与常见参数校验异常,记录错误日志
- 日志使用规范
- 操作日志与 API 访问日志模型清晰,字段覆盖 traceId、用户信息、请求上下文、执行耗时与结果码
章节来源
- package-info.java (infra模块)
- README.md
- GlobalExceptionHandler.java
- OperateLogDO.java
- ApiAccessLogDO.java
Spring Boot 项目结构规范
- Controller、Service、Mapper、VO、DTO 职责与命名
- Controller:统一生成路径与前缀,遵循模块与业务域划分
- Service:业务实现,配合 Mapper 与 DO
- Mapper:MyBatis Plus 映射,统一命名
- VO/DTO:RespVO、ReqVO、SaveReqVO 等,模板生成
- 代码生成器
- 基于 Velocity 模板,生成后端 Java 代码与前端页面骨架
- 生成路径与包名遵循约定,便于统一维护
图表来源
章节来源
规则引擎(LiteFlow)组件与流程
- 核心实体与缓存
- RuleLiteflowChainDO:规则链实体,包含 EL 表达式与生效状态
- RuleLiteflowChainCacheDTO:Redis 缓存传输对象
- 规则获取与缓存机制
- 多级缓存 + 分布式锁 + 数据库兜底,防止穿透与击穿
- 业务绑定与审批
- RuleBusinessApiServiceImpl:绑定/解绑规则,构建变更详情
图表来源
章节来源
- RuleLiteflowChainDO.java
- RuleLiteflowChainCacheDTO.java
- RuleBusinessApiServiceImpl.java
- RuleRunUtil.java