1.6 KiB
1.6 KiB
任务018:代码优化
目标
完成审查提出的3个改进建议。
优化清单
1. KEYS → SCAN
位置: api-server/src/routes/nodes.rs 或 api-server/src/commands.rs
当前:
let keys = redis.keys("node:*").await?;
改进:
async fn scan_nodes(redis: &redis::aio::ConnectionManager) -> Result<Vec<String>> {
let mut nodes = Vec::new();
let mut cursor = 0i64;
loop {
let (new_cursor, keys): (i64, Vec<String>) = 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:
use rand::Rng;
let mut rng = rand::thread_rng();
let value = rng.gen_range(0..CHARSET.len());
质量约束
- 完成代码后执行
cargo check+cargo clippy,零报错零警告 - 分层拆分,单函数≤80行,命名语义化,完整注释
- 所有外部IO/网络请求异常捕获,禁止裸panic
- 分支逻辑全覆盖,不遗漏兜底分支
- 常量抽离,不使用废弃API
- Rust内存安全,合理管理所有权,禁用unsafe无合理理由