「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング
このコースは、単なる文法解説にとどまらず、実用的な視点でRustを学ぶことができます。
信頼性の高さ
GoogleのAndroidチームという、世界トップクラスのエンジニアたちが実際に使っている教材です。内容の質と正確性は非常に高いと言えます。
実践的な内容
Android開発という具体的なプロジェクトに関連する内容が含まれているため、理論だけでなく、現実世界での応用方法を学ぶことができます。
体系的な学習
ゼロからRustを学ぶ人向けに、段階的にカリキュラムが組まれています。自分で何から学べばいいか迷う必要がありません。
コミュニティでの活用
チームや社内でRustの知識を共有・普及させるための教材としても使えます。新人研修や社内勉強会でそのまま利用できるでしょう。
このコースは、Gitリポジトリとして公開されています。以下の手順でローカル環境に導入して学習を始められます。
PCに以下のソフトウェアがインストールされているか確認してください。
Git
Rust(rustup ツールチェインマネージャーを推奨)
ターミナルを開き、以下のコマンドを実行してリポジトリをクローンします。
git clone https://github.com/google/comprehensive-rust.git
cd comprehensive-rust
クローンしたディレクトリ内に、PDFやウェブサイト形式の教材、演習問題、サンプルコードが含まれています。
content ディレクトリに主要な教材のMarkdownファイルがあります。
exercises ディレクトリに、学習した内容を試すための演習問題があります。
solutions ディレクトリには、演習問題の解答例が含まれています。
リポジトリのREADMEファイル(README.md)に、学習の進め方や環境設定についての詳細な説明があります。それに従って学習を進めていきましょう。
このコースの演習問題は、Rustの主要な概念を実践的に学ぶように設計されています。たとえば、所有権(Ownership)というRustの最も重要な概念を学ぶための演習問題を見てみましょう。
exercises/01_intro/01_ownership.rs のようなファイルに、以下のようなコードがあるとします。
// 以下のコードには所有権に関する問題があります。
// コンパイルエラーを修正して、所有権の概念を理解しましょう。
fn main() {
let s1 = String::from("hello");
let s2 = s1; // ★ ここで s1 の所有権が s2 に移動します
println!("s1 is {}", s1); // ★ コンパイルエラー! s1はもう使えません
}
この問題を解決するには、s1の所有権を移動させるのではなく、新しい文字列をクローン(複製)する必要があります。
fn main() {
let s1 = String::from("hello");
let s2 = s1.clone(); // ★ .clone() メソッドを使って複製します
println!("s1 is {}", s1); // これでエラーなくコンパイルできます
println!("s2 is {}", s2);
}
このように、実際に手を動かしてエラーを修正することで、座学だけでは得られない深い理解が得られます。このコースには、このような実践的な演習が豊富に用意されているため、Rustの強力な概念をしっかりと身につけることができるでしょう。