构建你的第一个 Rust CLI 是 Rust 初学者入门的项目型进阶课程。你将在 6 个动手活动中,从小型 Rust 程序逐步完成一个带外部依赖、可重复质量检查、文件状态、测试和发布版可执行文件的完整命令行应用。
课程将 3 个引导实验与 3 个针对性挑战一一配对。较长的源文件、模块树、测试框架和清单文件会作为起始项目提供。你将使用 nano 在当前教学边界内进行少量但有意义的修改,而不需要在终端中复制大段程序。
你将学到什么
- 使用 Cargo 添加 crate,并说明
Cargo.toml与Cargo.lock的不同作用 - 启用 crate feature,并使用
clapderive 宏创建带类型的参数、选项和子命令 - 阅读自动生成的帮助信息,并使用带类型的命令行验证
- 将 rustfmt、严格 Clippy、测试和 rustdoc 组合为可重复的交付质量流程
- 阅读小型多模块 Rust 项目,而不是把所有职责都放入
main.rs - 通过清晰的文件边界持久化应用数据,并传播带上下文的错误
- 使用锁定的依赖图构建、测试并运行优化后的发布版可执行文件
- 在保持原有行为的同时,跨解析器、库、存储和输出边界扩展现有 CLI
本课程适合谁
本课程适合已经完成 Rust 初学者入门,或具备同等知识的学习者。你应当熟悉所有权、借用、结构体、枚举、集合、迭代器、Result、文件、模块、测试、泛型、trait 和基本命令行进程行为。
前置要求: 你应当能够阅读 Cargo 项目并进行少量修改。不要求具备选择外部 crate、使用 clap、运行 Clippy 或 rustdoc、组织完整 CLI 项目的经验;课程会在需要这些知识之前先进行讲解。
学习环境: 每个活动都在全新的 LabEx Linux 终端中运行,并预先准备 Rust 和所需的起始项目。默认编辑器是 nano。活动之间不共享文件系统状态,因此每个挑战都包含可以独立完成的项目。
常见问题
我需要从空白文件开始编写完整应用吗?
不需要。项目结构、较长的实现、参数解析样板、测试和测试数据都会由 setup 预先准备。引导步骤每次只要求你完成一个较小的存储、命令或领域边界。
为什么课程使用 clap?
标准库足以完成前置课程讲解的简单参数收集。clap 增加了带类型的选项、子命令、自动生成的帮助和一致的错误信息,是实际 CLI 项目的合适首个依赖。
这里的“可交付”是什么意思?
它意味着其他开发者可以重现依赖图、阅读公共接口、运行测试,并确认格式一致且 lint 检查干净。本课程把这些要求转换为明确的 Cargo 命令,而不是非正式的目视检查。
我会构建什么?
你将完成一个带 add、list 和 done 子命令的文件型任务跟踪器,对其进行测试并构建发布版可执行文件,然后在一个全新版本中加入未完成任务筛选和摘要输出。


