代码风格和约定规范
Java后端代码规范
命名约定
- 类名: 使用PascalCase,如
PmRepairOrderController
- 方法名: 使用camelCase,如
updateRepairOrder
- 常量: 使用UPPER_SNAKE_CASE,如
DEFAULT_PAGE_SIZE
- 包名: 使用小写,如
org.dromara.hq.service
项目结构模式
org.dromara.zhxy.hq/
├── controller/ # 控制器层
├── service/ # 服务层
│ └── impl/ # 服务实现
├── mapper/ # 数据访问层
├── domain/ # 实体类
│ ├── vo/ # 视图对象
│ └── bo/ # 业务对象
└── config/ # 配置类
注解使用
- Controller:
@RestController, @RequestMapping
- Service:
@Service, @Transactional
- Mapper:
@Mapper
- 权限校验:
@RequiresPermissions("hq:repair:list")
- 日志记录:
@Log(title = "报修管理", businessType = BusinessType.UPDATE)
数据库设计规范
- 主键: 使用雪花ID
@TableId(type = IdType.ASSIGN_ID)
- 基础字段: 继承
BaseEntity (id, create_time, create_by, update_time, update_by, tenant_id)
- 命名: 使用下划线命名法,如
repair_order, user_name
- 多租户: 所有业务表包含
tenant_id 字段
Vue前端代码规范
命名约定
- 组件名: 使用PascalCase,如
RepairOrderList.vue
- 文件名: 使用kebab-case,如
repair-order-list.vue
- 变量名: 使用camelCase,如
repairOrderList
- 常量: 使用UPPER_SNAKE_CASE,如
API_BASE_URL
组件结构
<template>
<!-- 模板内容 -->
</template>
<script setup lang="ts">
// 导入
// 类型定义
// 响应式数据
// 计算属性
// 生命周期钩子
// 方法定义
</script>
<style scoped>
/* 样式 */
</style>
TypeScript类型定义
- 接口命名: 使用PascalCase + Interface后缀,如
RepairOrderInterface
- 类型导出: 统一在
types/ 目录管理
- API响应: 使用泛型
R<RepairOrderVo>
API调用规范
// API定义
export const getRepairOrderList = (params: RepairOrderQuery) => {
return request<RepairOrderVo[]>({
url: '/hq/repair/list',
method: 'get',
params
})
}
// 组件中使用
const { data, loading, refresh } = useRequest(getRepairOrderList)
通用开发规范
注释规范
/**
* 获取报修订单列表
*
* @param bo 查询条件
* @return 报修订单列表
* @author wuzilong
* @date 2025-07-01
*/
public List<PmRepairOrderVo> queryPageList(PmRepairOrderBo bo)
错误处理
- 后端: 使用统一异常处理
@ControllerAdvice
- 前端: 使用统一的错误提示组件
- 日志记录: 使用
@Log 注解记录关键操作
权限控制
- 接口级:
@RequiresPermissions("hq:repair:add")
- 按钮级:
v-hasPermi="['hq:repair:edit']"
- 数据级: 使用
@DataPermission 注解
多租户规范
- 数据隔离: 自动注入
tenant_id 条件
- 缓存隔离: 使用租户前缀
- 权限隔离: 基于租户的权限控制
国际化支持
- 前端: 使用
$t('message.key')
- 后端: 使用
MessageUtils.message("key")
- 配置文件: 统一在
i18n/ 目录管理
测试规范
- 单元测试: 使用JUnit 5 + Mockito
- 接口测试: 使用
@Test 注解
- 覆盖率: 要求 >80%
文档规范
- API文档: 使用Swagger/OpenAPI注解自动生成
- 代码文档: 重要方法必须有JavaDoc
- 变更记录: 每次变更必须更新变更日志