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

2.8 KiB
Raw Blame 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日志。

// 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, ...];

质量约束

  1. 完成代码后执行 cargo check + cargo clippy + tsc --noEmit,零报错零警告
  2. 分层拆分单函数≤80行命名语义化完整注释
  3. 所有外部IO/网络请求异常捕获禁止裸panic
  4. 分支逻辑全覆盖,不遗漏兜底分支
  5. 常量抽离不使用废弃API
  6. Rust内存安全React函数组件+Hooks
  7. 拆分后的文件职责单一,无循环依赖