# 任务018:代码优化 ## 目标 完成审查提出的3个改进建议。 ## 优化清单 ### 1. KEYS → SCAN **位置:** `api-server/src/routes/nodes.rs` 或 `api-server/src/commands.rs` **当前:** ```rust let keys = redis.keys("node:*").await?; ``` **改进:** ```rust async fn scan_nodes(redis: &redis::aio::ConnectionManager) -> Result> { let mut nodes = Vec::new(); let mut cursor = 0i64; loop { let (new_cursor, keys): (i64, Vec) = redis .scan(cursor) .await?; nodes.extend(keys); if new_cursor == 0 { break; } cursor = new_cursor; } Ok(nodes) } ``` ### 2. JWT常量去重 **位置:** `api-server/src/middleware/auth.rs` 和 `api-server/src/config.rs` **当前:** `JWT_SECRET_DEFAULT` 在两个文件重复定义 **改进:** 只在 `config.rs` 定义,`auth.rs` 从 `Config` 读取 ### 3. rand API更新 **位置:** `device-server/src/main.rs` 或 `api-server/src/routes/organizations.rs` **当前:** 可能用了旧版 `rand::thread_rng()` 或 `gen_range` **改进:** 确认使用 rand 0.8+ API: ```rust use rand::Rng; let mut rng = rand::thread_rng(); let value = rng.gen_range(0..CHARSET.len()); ``` ## 质量约束 1. 完成代码后执行 `cargo check` + `cargo clippy`,零报错零警告 2. 分层拆分,单函数≤80行,命名语义化,完整注释 3. 所有外部IO/网络请求异常捕获,禁止裸panic 4. 分支逻辑全覆盖,不遗漏兜底分支 5. 常量抽离,不使用废弃API 6. Rust内存安全,合理管理所有权,禁用unsafe无合理理由