SuperAPI AI 工具集

rust-anti-pattern

编程与开发

查看项目

更新于 10-16 08:48

技能介绍

用途:本技能面向 Rust 代码审查与重构,帮助识别常见反模式并给出惯用替代写法。资料列出五大初学者错误:用 .clone() 绕过借用检查、生产代码用 .unwrap()、一切皆用 String、使用基于索引的循环、与生命周期对抗(应重新设计数据结构)。

主要能力:给出反模式与正例对照,包括 clone 泛滥改用引用、错误传播改用 ? 或 context("failed to open config")、String 参数改为 &str(必要时用 Cow<str>)、索引循环改用 .iter() 与 .enumerate()、减少 unsafe 并寻找安全抽象。还提供代码异味速查,如大量 .clone() 指向所有权不清、大量 .unwrap() 指向缺少错误处理、公有字段破坏封装、深层嵌套、函数超过 50 行、超大枚举等,并附重构方向。资料含过时到现代的对照:索引循环改为 .iter().enumerate()、lazy_static! 改为 std::sync::OnceLock、mem::transmute 改为 as 或 TryFrom、自定义链表改为 Vec 或 VecDeque、手动 unsafe cell 改为 Cell 与 RefCell。

使用方式:按三步工作流执行,先识别反模式,再提关键问题(是否在与 Rust 对抗、clone 是否必要、unwrap 是否会 panic、是否有更惯用写法),然后理解根因、找惯用替代、渐进重构并充分测试。附代码审查清单,如库代码不应有 .unwrap()、有不变量的字段不应为 pub、可用迭代器时不用索引循环、够用时用 &str 而非 String、不要忽略 #[must_use]、unsafe 需带 SAFETY 注释、函数不应超过 50 行、错误处理用 Result 而非 panic。验证命令保持原样:cargo clippy;cargo clippy -- -W clippy::clone_on_copy -W clippy::unwrap_used -W clippy::expect_used;cargo clippy -- -W clippy::cognitive_complexity;rg "TODO|FIXME|XXX|HACK" --type rust。

适用场景:Rust 项目代码审查、重构与教学,尤其是审查 clone、unwrap、String 与索引循环等常见问题。

限制:资料为经验性反模式清单,未说明适用版本、平台或自动化集成方式;相关技能包括 rust-coding、rust-ownership、rust-error、rust-performance、rust-refactoring,中文完整版为 SKILL_ZH.md,其余细节暂未提供。