初めての Rust CLI を構築するは、初心者向け Rust に続くプロジェクト中心のコースです。6 つの実践アクティビティを通して、小さな Rust プログラムから、外部依存関係、再現可能な品質確認、ファイル保存、テスト、リリース実行ファイルを備えた完全なコマンドラインアプリケーションへ進みます。
3 つのガイド付き Lab と 3 つの焦点を絞った Challenge が対応しています。長いソースファイル、module ツリー、テストハーネス、manifest は開始プロジェクトとして用意されます。長いプログラムを端末にコピーするのではなく、nano を使って学習対象の境界に小さく意味のある変更を加えます。
学習内容
- Cargo で crate を追加し、
Cargo.tomlとCargo.lockの役割の違いを説明する - crate feature を有効にし、
clapの derive macro で型付き引数、option、subcommand を作成する - 生成された help を読み、型付きコマンドライン検証を利用する
- rustfmt、strict Clippy、テスト、rustdoc を再現可能な引き渡し品質フローとして適用する
- すべての責務を
main.rsに集めず、小さな複数 module の Rust プロジェクトを読み進める - 明確なファイル境界を通してデータを永続化し、文脈付きエラーを伝播する
- 依存関係を固定して、最適化されたリリース実行ファイルを構築、テスト、実行する
- 既存動作を保ちながら parser、library、storage、output の境界をまたいで CLI を拡張する
このコースの対象者
初心者向け Rust を修了した方、または所有権、借用、struct、enum、collection、iterator、Result、ファイル、module、テスト、generics、trait、基本的なコマンドラインプロセス動作について同等の知識がある方を対象としています。
前提知識: Cargo プロジェクトを読み、小さな変更を加えられる必要があります。外部 crate の選択、clap、Clippy、rustdoc、完全な CLI プロジェクトの構成経験は不要で、必要になる前に説明されます。
学習環境: 各アクティビティは、Rust と必要な開始プロジェクトが用意された新しい LabEx Linux 端末で実行します。既定のエディターは nano です。アクティビティ間でファイル状態を共有しないため、各 Challenge には独立したプロジェクトがあります。
よくある質問
空のファイルから完全なアプリケーションを書く必要がありますか?
ありません。プロジェクト構造、長い実装、parser の定型コード、テスト、fixture は setup で用意されます。ガイド付きの手順では、storage、command、domain の小さな境界を一つずつ完成させます。
なぜ clap を使用するのですか?
前提コースで扱う単純な引数収集には標準 library で十分です。clap は型付き option、subcommand、生成 help、一貫した error を追加するため、実際の CLI プロジェクトで最初に導入する依存関係に適しています。
ここでの「引き渡し可能」とは何ですか?
別の開発者が依存関係を再現し、公開 interface を読み、テストを実行し、一貫した format と問題のない lint を確認できる状態です。本コースではこれらを具体的な Cargo command にします。
何を構築しますか?
add、list、done subcommand を持つファイル型タスクトラッカーを完成させ、テストしてリリース実行ファイルを作ります。その後、新しいプロジェクトに未完了タスクの filter と summary 出力を追加します。


