2.8 KiB
2.8 KiB
任务011:代码质量优化
目标
修复代码审查发现的警告问题,提升代码质量。
修复清单
1. 拆分大文件( 中优先级)
organizations.rs(693行) 拆分为:
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.rs(495行) 拆分为:
src/routes/users.rs— 用户CRUD(~200行)src/routes/user_operations.rs— 操作日志辅助函数(~100行)
devices/index.tsx(631行) 拆分为:
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日志。
// 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
修复方案: 替换为可用图标。
// 错误
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警告(🟢 低优先级)
修复方案:
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注释,标记为待后端提供数据后替换。
// TODO: 待后端提供充电曲线API后替换为真实数据
const mockChartData = [30, 45, 55, ...];
质量约束
- 完成代码后执行
cargo check+cargo clippy+tsc --noEmit,零报错零警告 - 分层拆分,单函数≤80行,命名语义化,完整注释
- 所有外部IO/网络请求异常捕获,禁止裸panic
- 分支逻辑全覆盖,不遗漏兜底分支
- 常量抽离,不使用废弃API
- Rust内存安全,React函数组件+Hooks
- 拆分后的文件职责单一,无循环依赖