Files
hzdyjs/.serena/memories/code_style_conventions.md
T
zlwu 249b1dfeb4 feat: 完善项目开发规范和测试文档体系
📝 主要改进:
• Cursor配置模块化:拆分为前端、后端、移动端、文档、API测试5个专门规范文件
• API文档重新组织:按业务模块拆分到docs/开发文档/API/目录下
• 新增维修分类功能完整测试方案和自动化测试脚本
• 后端热启动脚本完善,支持Linux/Windows双平台
• 强化文档同步更新规范,确保代码与文档一致性

🔧 技术改进:
• 优化Cursor AI工作流程和代码生成质量
• 完善API测试规范(AES+RSA双重加密登录方法)
• 提升开发效率和代码质量标准化程度

�� 测试覆盖:
• 维修分类管理功能端到端测试验证通过
• 包含页面加载、CRUD操作、搜索功能等核心测试用例

更新时间:2025-07-01
2025-07-01 17:53:05 +08:00

3.5 KiB

代码风格和约定规范

Java后端代码规范

命名约定

  • 类名: 使用PascalCase,如 PmRepairOrderController
  • 方法名: 使用camelCase,如 updateRepairOrder
  • 常量: 使用UPPER_SNAKE_CASE,如 DEFAULT_PAGE_SIZE
  • 包名: 使用小写,如 org.dromara.zhxy.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
  • 变更记录: 每次变更必须更新变更日志