charging-cabinet/tasks/011-code-quality-improvements.md
2026-07-02 05:38:01 +08:00

101 lines
2.8 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.

# 任务011代码质量优化
## 目标
修复代码审查发现的警告问题,提升代码质量。
## 修复清单
### 1. 拆分大文件( 中优先级)
**organizations.rs693行**
拆分为:
- `src/routes/organizations.rs` — 组织CRUD~150行
- `src/routes/projects.rs` — 项目CRUD~150行
- `src/routes/cabinets.rs` — 设备CRUD+详情(~200行
- `src/routes/cabinet_tree.rs` — 树状结构(~100行
**users.rs495行**
拆分为:
- `src/routes/users.rs` — 用户CRUD~200行
- `src/routes/user_operations.rs` — 操作日志辅助函数(~100行
**devices/index.tsx631行**
拆分为:
- `src/pages/devices/index.tsx` — 主页面(~150行
- `src/pages/devices/OrganizationTree.tsx` — 组织树组件(~150行
- `src/pages/devices/CabinetGrid.tsx` — 柜子卡片网格(~150行
- `src/pages/devices/AddCabinetModal.tsx` — 添加柜子弹窗(~100行
### 2. JWT密钥安全检查🟡 中优先级)
**位置:** `src/middleware/auth.rs:28`
**修复方案:**
启动时检测默认密钥打印WARN日志。
```rust
// config.rs 添加
impl Config {
pub fn validate(&self) -> Result<()> {
if self.jwt_secret == JWT_SECRET_DEFAULT {
tracing::warn!("⚠️ 使用默认JWT密钥生产环境请设置JWT_SECRET环境变量");
}
Ok(())
}
}
// main.rs 启动时调用
let config = Config::from_env()?;
config.validate()?; // 新增
```
### 3. 修复IconFolderOpen构建错误🟡 中优先级)
**位置:** `src/pages/devices/index.tsx:33`
**修复方案:**
替换为可用图标。
```tsx
// 错误
import { IconFolderOpen } from '@arco-design/web-react/icon';
// 修复(选择存在的图标)
import { IconFolder } from '@arco-design/web-react/icon';
// 或
import { IconApps } from '@arco-design/web-react/icon';
```
### 4. 清理clippy警告🟢 低优先级)
**修复方案:**
```bash
cd software/server
cargo clippy --fix --allow-dirty
```
自动修复大部分clippy警告collapsible_if、manual_unwrap_or_default等
### 5. H5充电曲线数据🟢 低优先级)
**位置:** `src/h5/pages/compartment-detail.tsx:156`
**修复方案:**
添加TODO注释标记为待后端提供数据后替换。
```tsx
// TODO: 待后端提供充电曲线API后替换为真实数据
const mockChartData = [30, 45, 55, ...];
```
## 质量约束
1. 完成代码后执行 `cargo check` + `cargo clippy` + `tsc --noEmit`,零报错零警告
2. 分层拆分单函数≤80行命名语义化完整注释
3. 所有外部IO/网络请求异常捕获禁止裸panic
4. 分支逻辑全覆盖,不遗漏兜底分支
5. 常量抽离不使用废弃API
6. Rust内存安全React函数组件+Hooks
7. 拆分后的文件职责单一,无循环依赖