Rustで実現するシステムプログラミング
Rustはガベージコレクタなしでメモリ安全性を保証するシステム言語です。Linuxカーネルの一部、高性能なWebサーバ、WebAssemblyランタイム、組み込みファームウェアなど、正確性と速度の両方が重要な場所で使われています。このトラックはRustの基礎から高度な並行処理、非同期I/O、低レベルシステムプログラミングまでをカバーしており、言語の実際の所有権モデルに基づいて構成されています。
学習内容
型システム(変数、データ型、文字列、スライス、ベクタ、HashMap)から始めて、Rustを特別にする仕組み(所有権、借用、ライフタイム)へと進みます。その後、関数とクロージャ、イテレータ、ジェネリクスとトレイト境界、高度なパターンマッチングに取り組みます。実践的なモジュールでは、Tokioを用いた非同期プログラミング、clapを用いたCLIツール構築、Axumを用いたWebサービス、sqlxを用いたデータベースアクセス、Serdeを用いたシリアライゼーション、tonicを用いたgRPCサービス、REST API設計をカバーします。上級レベルではマクロの作成、Unsafe Rustの活用、FFIを通じた外部コード呼び出し、WebAssemblyへのコンパイル、組み込みシステムの開発に取り組みます。
学習パス
39コースがA1からC2までをカバーしています。A1とA2コースでは構文、コアデータ構造、制御フローを確立します。B1ではモジュール、Cargo、スレッド、共有状態を追加します。B2レベルは最大のブロックで、非同期エコシステム、実践的なフレームワーク、プロジェクト組織パターンをカバーする14コースがあります。C1ではライフタイム、スマートポインタ、マクロ、Unsafe コード、WebAssembly、高度なWebサービス、eguiを用いたGUIアプリケーション、Bevyを用いたゲーム開発を深く学びます。このトラックはC2で高度な型システム(ジェネリクス、トレイト、関連型)と組み込みRustおよびシステムプログラミングの基礎で終わります。
仕組み
各コースは短く焦点を絞ったレッスンに分かれており、組み込みコードエディタで完了できて、リアルタイムフィードバックが得られます。行き詰まった時はいつでもAIチューターが利用できるので、アプリを離れずに所有権エラーとライフタイム注釈に自分のペースで取り組むことができます。