Rust 系统编程
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/rust-systems-sh-tmkozg。
技能介绍
解决的核心问题
Rust 系统开发中,开发者常面临所有权与借用规则的心智负担:何时转移所有权、何时复用引用,往往难以权衡。同时,错误处理方式不统一、异步代码中出现死锁或过度克隆、unsafe 块缺少安全约束等问题,进一步增加了代码维护成本。这些问题在复杂业务场景中被放大,导致代码膨胀、性能下降或隐性故障。
- 库代码中滥用
.unwrap()/.expect()导致生产环境 panic - 简单克隆数据而非借用引用,造成不必要的内存开销
MutexGuard跨.await点持有引发异步死锁Arc滥用替代更合适的通道(channel)通信
技能如何工作
该技能以结构化的 Rust 编程原则为核心,提供从设计到审查的全流程指导。首先明确所有权与借用优先原则:优先使用 &T / &mut T 借用,仅在必要时转移所有权或 Clone,从源头减少内存管理问题。错误处理层面,区分库与应用场景:库代码使用 thiserror 定义结构化错误类型,应用层使用 anyhow 简化错误传播,生产路径禁止 .unwrap()。
针对异步开发,技能强调边界控制:通过信号量或 buffer_unordered 限制并发数量,避免资源耗尽;禁止 MutexGuard 跨 .await 点,防止死锁。对于复杂配置,采用 Builder 模式构建结构化配置,提升可读性与扩展性。
技能提供反模式识别清单,直接指出 Arc 滥用、未文档化的 unsafe、缺少 #[must_use] 等高频问题。同时附带代码审查 Checklist,涵盖错误传播、克隆优化、并发控制等 8 项检查项,确保开发规范落地。
适用边界与注意点
该技能适用于 Rust 系统级开发、库开发及需要长期维护的应用项目,尤其是涉及复杂并发、错误处理的场景。对于原型开发或脚本类场景,部分严格规则(如禁用 .unwrap())可能需要适当放宽。
需注意:技能是最佳实践总结,而非编译器的替代。审查过程中仍需结合项目实际场景,例如在测试代码中 .unwrap() 是合理的。unsafe 的使用必须严格记录安全不变式,不可依赖经验主义判断。技能最终目标是帮助开发者建立符合 Rust 设计哲学的编码习惯,而非机械遵守规则。
使用场景
- 编写 Rust 库时定义错误类型,需要区分库与应用层错误处理方式
- 审查生产环境 Rust 代码,排查 unwrap 和 Arc 滥用等隐患
- 开发异步服务时控制并发数量,防止资源耗尽与死锁
- 构建复杂配置结构体,需用 Builder 模式提升可读性
适合人员
- Rust 后端工程师:需要编写高可靠性库与服务,规范错误处理
- 系统架构师:审查 Rust 项目代码质量,关注所有权与并发安全
- 异步服务开发者:处理高并发场景,需避免死锁与资源竞争
- 开源维护者:希望项目代码符合 Rust 最佳实践,便于社区协作