charging-cabinet/tasks/review-full-codebase.md
2026-07-02 05:38:01 +08:00

5.0 KiB
Raw Blame History

全面代码审查任务

目标

全面审查充电柜PMS项目的所有代码确保质量、安全、规范。

审查范围

后端 (Rust + Axum)

software/server/src/ 目录下所有文件:

  • main.rs — 启动入口
  • config.rs — 配置管理
  • error.rs — 错误处理
  • db/mod.rs — 数据库连接
  • db/migrate.rs — 数据库迁移
  • redis.rs — Redis连接
  • middleware/auth.rs — JWT认证+RBAC权限
  • routes/ — 所有路由模块
    • auth.rs — 登录/登出
    • organizations.rs — 组织CRUD
    • projects.rs — 项目CRUD
    • cabinets.rs — 设备CRUD
    • cabinet_tree.rs — 树状结构
    • users.rs — 用户管理
    • roles.rs — 角色管理
    • users_perm.rs — 用户权限
    • charge_records.rs — 充电记录
    • device_logs.rs — 设备日志
    • energy_stats.rs — 能耗统计
    • downloads.rs — 下载中心
    • operation_logs.rs — 操作日志
  • tcp/ — TCP通讯服务
    • server.rs — TCP监听
    • connection.rs — 连接管理
    • protocol.rs — 协议解析
    • handler.rs — 消息处理
    • commands.rs — 指令下发

前端 (React + TypeScript)

software/web/src/ 目录下所有文件:

  • App.tsx — 路由配置
  • main.tsx — 入口
  • layouts/AdminLayout.tsx — 后台布局
  • api/ — API封装
  • stores/auth.ts — 认证状态
  • utils/permission.ts — 权限工具
  • components/Permission.tsx — 权限组件
  • pages/ — 所有页面
    • Login.tsx — 登录页
    • Dashboard.tsx — 首页
    • devices/ — 设备管理
    • charge-records/ — 充电记录
    • device-logs/ — 设备日志
    • energy/ — 能耗管理
    • settings/ — 系统设置
  • h5/ — H5用户端
    • pages/ — H5页面
    • components.tsx — 移动端组件
    • layout.tsx — H5布局

审查清单

1. 编译与类型检查

  • cargo check 零报错零警告
  • cargo clippy 零报错零警告
  • tsc --noEmit 零报错零警告
  • vite build 成功

2. 代码规范

  • 单函数≤80行
  • 命名语义化,无无意义缩写
  • 完整注释(入参、返回值、复杂逻辑)
  • 常量抽离,无硬编码散落
  • 无废弃API使用

3. 错误处理

  • 所有外部IO/网络请求有异常捕获
  • 无裸 panic!unwrap()
  • 分支逻辑全覆盖,无遗漏兜底
  • 错误信息有意义,便于调试

4. Rust专项

  • 内存安全,无冗余拷贝
  • unsafe 块(除非有合理理由)
  • 所有权管理合理
  • 异步代码无阻塞操作

5. React专项

  • 函数式组件+Hooks无Class组件
  • 状态分层管理(接口/渲染/业务逻辑)
  • 无内存泄漏useEffect清理
  • as any 类型断言

6. 安全

  • SQL注入防护全部参数化查询
  • 密码哈希argon2/bcrypt
  • JWT密钥安全非默认值
  • 输入参数校验
  • 权限校验覆盖所有API接口
  • 数据隔离(组织/项目/设备级)
  • 敏感参数脱敏(日志中不打印密码/token

7. 业务逻辑

  • TCP协议解析正确签名验证、粘包处理、超时清理
  • 权限模型正确(总管理员/企业管理员/普通用户)
  • 异步导出流程完整(任务创建→后台处理→下载)
  • 前端权限组件正确隐藏/显示按钮

8. 架构

  • 接口层、业务逻辑层、数据模型层分离
  • 无循环依赖
  • 模块职责清晰
  • 路由注册完整,无遗漏

9. 性能

  • 数据库查询有索引
  • 无N+1查询问题
  • 前端列表有分页
  • 大数据量导出异步处理

10. 可维护性

  • 文件长度合理≤300行
  • 组件拆分合理
  • 代码重复度低
  • 配置外部化(环境变量)

输出格式

# 全面代码审查报告

## 总体评价
[整体质量评分 1-10分简要评价]

## 统计
- 后端文件数X
- 前端文件数X
- 总代码行数X
- 问题总数X严重X / 警告X / 建议X

## 严重问题( 必须修复)
### 问题1[标题]
- **位置**`文件路径:行号`
- **描述**[问题描述]
- **风险**[可能的影响]
- **建议**[修复方案]

## 警告(🟡 建议修复)
### 警告1[标题]
- **位置**`文件路径:行号`
- **描述**[问题描述]
- **建议**[改进方案]

## 优点
- [值得肯定的设计/实现]

## 总结
[总体结论和优先修复建议]

审查工具

# 后端静态检查
cd software/server && cargo check && cargo clippy

# 前端类型检查
cd software/web && tsc --noEmit

# 前端构建测试
cd software/web && vite build

# 代码行数统计
find src -name "*.rs" -exec wc -l {} + | sort -n
find src -name "*.tsx" -exec wc -l {} + | sort -n

质量约束

  1. 审查必须覆盖所有清单项目
  2. 每个问题必须给出具体位置和修复建议
  3. 严重问题必须标注风险等级
  4. 审查报告用中文撰写
  5. 必须实际读取代码文件,不能仅凭文件名判断