「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング


「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング

google/comprehensive-rust

2025-09-03

このコースは、単なる文法解説にとどまらず、実用的な視点で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の強力な概念をしっかりと身につけることができるでしょう。


google/comprehensive-rust




Dockerで爆速構築!Androidエミュレータをコンテナ化する「HQarroum/docker-android」解説

「Androidのエミュレータを立てるだけでPCが重くなる…」「CI(継続的インテグレーション)でUIテストを自動化したいけど、設定が地獄だ…」そんな胃もたれしそうな状況を、このツールがサクッと軽くしてくれますよ。どうぞ、じっくり味わってみてください!


nautechsystems/nautilus_trader:アルゴリズム取引の未来を創る

皆さん、こんにちは。お集まりいただき、ありがとうございます。本日は、金融とテクノロジーの融合が生み出した、非常に興味深いプロジェクトについてお伝えします。ご紹介するのは、nautechsystems/nautilus_trader。これは、高性能なアルゴリズム取引プラットフォームであり、イベント駆動型のバックテスターとしても機能する、まさにソフトウェアエンジニアにとっての宝箱のような存在です。


Rustfmtで秩序を!ソフトウェアエンジニアが知るべきコード整形とcargo fmt

ダース・ベイダールーク、聞くがいい。お前が書いたあのRustコードだ。インデントはバラバラ、スペースの入れ方も一貫性がない。見るに堪えん!ルーク・スカイウォーカー父上…。でも、動くことは動くんですよ。それに、急いでいたんです!ダース・ベイダー動くだけではダメだ、ルーク。プロジェクトでは一貫性こそが重要。多くの開発者が関わる時、コードの見た目が揃っていないと、バグを見つけるのも、機能を追加するのも困難になる。これではダークサイド…いや、メンテナンス地獄に落ちるぞ。


そのPython、Rustで書き直さない?闇バイトの甘い誘惑を論理的に論破するRustPython入門

ただ、今回は「闇バイトに注意」というテーマで、ちょっとしたコント仕立てでお届けします。怪しい勧誘には気をつけつつ、技術の深淵を覗いてみましょう!【登場人物】先輩エンジニア(A)Rustが大好き。何でも爆速にしたがる。後輩エンジニア(B)最近「高単価・即日払い」のエンジニアバイトを探している。


孤独のグルメ風エディタ探訪記 〜Lapceで味わう爆速コーディング〜

今日は、あなたのコーディングライフを劇的に変えるかもしれない、あの爆速エディタについて、五郎さんの食レポならぬ「コードレポ」風にご紹介しますね。(SE風)「ああ、まただ…。このプロジェクト、起動に時間かかるし、なんかモッサリしてるんだよな…」


KitchenOwl入門:Dockerで始める自己ホスト型買い物リスト&レシピ管理

こんにちは!TomBurschさんのKitchenOwl、気になりますよね。自炊派のエンジニアにとって、これはかなり「使える」ツールになりそうです。ここでは、ソフトウェアエンジニアの視点からKitchenOwlがどのように役立つのか、そして実際にどうやって導入して使うのかを、サンプルコードを交えながらわかりやすく解説していきますね。


歌舞伎町発!PakePlusで実現する、超軽量マルチプラットフォームアプリ開発

おいおい、PakePlusってのはよ、一言で言えば「ウェブサイトを瞬時にアプリに変えちまう魔法のツール」ってところだ。ウェブの技術を使って作ったもんが、デスクトップアプリにもスマホアプリにもなっちまうんだから、まるでコントの世界だろ? しかも5MB以下っていう超軽量級で、サクッと作れちまう。RustとTauriをベースにしてるから、軽くて速いってのがミソだぜ。


pathwaycom/pathway タイトル集

簡単に言うと、リアルタイムでデータを処理できるPythonのETLフレームワークです。ETLとは、Extract(抽出)、Transform(変換)、Load(読み込み)の頭文字をとったもので、データ処理の基本となるプロセスです。普通のETLは、バッチ処理といって、ある程度のデータをまとめて処理することが多いですが、pathwaycom/pathwayはストリーム処理が得意です。つまり、データが流れてくるそばから、リアルタイムで処理してくれるんです。


逆に、使わないなんて損!Material Symbolsの導入から活用法まで

ソフトウェアエンジニアにとって、どう役に立つ?逆に、UI/UXを考えるときに、いちいちアイコンを自作するのって、めちゃくちゃ面倒じゃないですか?このMaterial Design iconsを使うと、高品質で統一感のあるアイコンを簡単にプロジェクトに組み込めます。デザイナーがいないチームでも、見栄えのいいアプリやウェブサイトが作れちゃいます。


自動化の未来:X-PLUG/MobileAgentが変える開発現場

今回は「X-PLUG/MobileAgent」について、俺たちソフトウェアエンジニアの視点から、カラオケのコント風に楽しく、そして分かりやすく解説していくぜ!(ガラガラと扉を開けて、カラオケボックスに入る二人。一人はノートパソコンを抱え、もう一人はスマホを片手にうろうろしている。)