ISBN 9784065301951

ゼロから学ぶRust システムプログラミングの基礎から線形型システムまで

ゼロから学ぶRust システムプログラミングの基礎から線形型システムまで
著者
高野 祐輝
出版社
講談社
刊行
2022-12

概要

Rustの安全性を支える型理論まで踏み込み、システムプログラミングを基礎から習得する

想定読者

C/C++や他の言語でプログラミング経験があり、Rustの所有権・ライフタイム・借用といった独自の安全性モデルを理論ごと理解したいエンジニア

こんな人には向いていない

  • プログラミング自体が初めての人には、他言語の経験がないと所有権モデルの説明が抽象的に感じられる
  • すでにThe Rust Programming Language(通称トレ本)を読了し、非同期・並行処理・WebAssemblyなど応用領域を深掘りしたい読者には基礎部分の比重が大きい
  • 業務でRustを使い実装課題の解決法を素早く探したい実務者が参照書として使うには向かない——通読型の教科書であるため

読了後にできるようになること

  • 所有権・ライフタイム・借用の三つの仕組みがなぜメモリ安全性を保証するかを説明できる
  • トレイトを使ったポリモーフィズムの実装パターンを理解し、実際に書ける
  • シェルやデバッガなどシステムプログラミングの周辺ツールをRustで扱う基礎を習得できる
  • 正規表現ライブラリを用いたテキスト処理をRustで実装できる
  • 線形型システムの理論的背景を理解し、Rustがなぜその設計選択をしたかを語れる
  • モジュール・ドキュメント・テストといった実務的なRustプロジェクト構成を整えられる

本書のキー概念(章解説)

  • 第 1 章 環境構築とHello, world! — Rustツールチェーン(rustup/cargo)の導入。既存言語経験者は短時間で通過できる
  • 第 2 章 Rustの基本 — 変数・型・制御フロー。他言語との差異を意識しながら読むと吸収が速い
  • 第 3 章 所有権・ライフタイム・借用 — 本書の核心。Rust固有の難所であり、ここを腹落ちさせるために本書を読む価値がある
  • 第 4 章 トレイト — Rustのポリモーフィズム。GoのinterfaceやHaskellの型クラスと比較すると理解が深まる
  • 第 5 章 モジュール・ドキュメント・テスト — 実務プロジェクトで即活かせる構成管理の章。序盤で一読しておくと後の演習が整理しやすい
  • 第 6 章 正規表現 — regexクレートを使った実践演習。ライブラリ選定とcargoの使い方を体感できる
  • 第 7 章 シェル — プロセス・パイプ・ファイルシステム操作。システムプログラミング色が最も強い章
  • 第 8 章 デバッガ — gdb/lldbとの連携。Rustのデバッグ環境を整える実用的な内容
  • 第 9 章 線形型システム — 所有権モデルの型理論的な土台を解説する。この章が他のRust入門書との最大の差別点

ハイライト

  • 単なる文法の解説にはとどまらない。実践的なソフトウェアの実装と、Rustの安全性を支える理論の学習を通して、ゼロから徹底的にマスターできる!(文法解説にとどまらず理論まで踏み込む、という本書の差別化を端的に示す箇所)

外部からの言及

  • 低レイヤー・システムプログラミング領域の技術書まとめ記事において、Rustを学ぶための入門書として複数回にわたって参照されており、基礎から線形型システムまでカバーする書として位置づけられている(qiita)

編集メモ

Qiita上で1,070 likesを獲得している低レイヤー技術書まとめ記事(qiita.com/aaaaaaa8888/items/51c8084c00853d36cd01)にシステムプログラミング学習リソースとして掲載。Qiita言及記事の直接カウントは限定的だが、低レイヤー・システムプログラミング文脈での参照実績あり。楽天ランキングデータは入力に含まれないため supplementary と practical の境界で判断し、掲載実績を重視して practical とする

読む前に押さえておきたいこと

  • C・C++・Python・Goなどいずれかの言語でのプログラミング経験(変数・関数・制御フローが書けるレベル)
  • コマンドライン操作の基本(ファイル操作・環境変数の設定程度)
  • スタックとヒープの概念、ポインタという単語に触れたことがある程度のメモリ管理の素地があると3章の吸収が格段に速い

学習のコツ

  • 3章(所有権・ライフタイム・借用)は本書の最難所であり、一読で完全に理解しようとせず、4章・5章を進めながら3章に立ち返る往復読みが効果的
  • 9章(線形型システム)は型理論の素地がない場合に抽象度が高く感じられる。7・8章のシステムプログラミング実践を先に終わらせ、最後に読む構成が定着しやすい
  • 各章のサンプルコードは著者のGitHubリポジトリ(ytakano/rust_zero)で参照でき、正誤表も同リポジトリで管理されているため、読書開始前にブックマークしておく
  • 本書と並行してRust公式ドキュメント(doc.rust-jp.rs)を辞書的に参照することで、本書の理論説明と公式の実例が相互補完する
出版社による内容紹介

通読して学習するRust入門書! 単なる文法の解説にはとどまらない。 実践的なソフトウェアの実装と、Rustの安全性を支える理論の学習を通して、ゼロから徹底的にマスターできる! サンプルコードもサポートページから提供! 【主な内容】 第1章 環境構築とHello, world! 第2章 Rustの基本 第3章 所有権・ライフタイム・借用 第4章 トレイト 第5章 モジュール・ドキュメント・テスト 第6章 正規表現 第7章 シェル 第8章 デバッガ 第9章 線形型システム 【正誤表】 https://github.com/ytakano/rust_zero/blob/master/errata.md 第1章 環境構築とHello, world! 第2章 Rustの基本 第3章 所有権・ライフタイム・借用 第4章 トレイト 第5章 モジュール・ドキュメント・テスト 第6章 正規表現 第7章 シェル 第8章 デバッガ 第9章 線形型システム

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。