charging-cabinet/tasks/011-code-quality-improvements.md

101 lines
2.8 KiB
Markdown
Raw Normal View History

# 任务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. 拆分后的文件职责单一,无循环依赖