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

185 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 全面代码审查任务
## 目标
全面审查充电柜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行
- [ ] 组件拆分合理
- [ ] 代码重复度低
- [ ] 配置外部化(环境变量)
## 输出格式
```markdown
# 全面代码审查报告
## 总体评价
[整体质量评分 1-10分简要评价]
## 统计
- 后端文件数X
- 前端文件数X
- 总代码行数X
- 问题总数X严重X / 警告X / 建议X
## 严重问题( 必须修复)
### 问题1[标题]
- **位置**`文件路径:行号`
- **描述**[问题描述]
- **风险**[可能的影响]
- **建议**[修复方案]
## 警告(🟡 建议修复)
### 警告1[标题]
- **位置**`文件路径:行号`
- **描述**[问题描述]
- **建议**[改进方案]
## 优点
- [值得肯定的设计/实现]
## 总结
[总体结论和优先修复建议]
```
## 审查工具
```bash
# 后端静态检查
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. 必须实际读取代码文件,不能仅凭文件名判断