動かして学ぶ!Rust入門(mebiusbox)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 動かして学ぶ!Rust入門

動かして学ぶ!Rust入門


形式:
書籍
発売日:
ISBN:
9784798177236
定価:
3,960(本体3,600円+税10%)
仕様:
A5・464ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
シリーズ:
NEXT ONE
紙の書籍

サンプルを動かしながら
Rustの基本をしっかり学べる!

【本書の背景】
Rustは、2015年に初期版がリリースされたプログラミング言語です。Rustの特徴として「処理の速度が速い」「安全性が高い」「開発に必要なツールが充実」といったことが挙げられます。現在は、Microsoft、Google、Amazon、MetaといったIT企業やLinuxでも導入が進み、国内でも利用するIT企業が増えてきている人気急上昇の言語です。

【本書の概要】
Rustのプログラミング手法について、サンプルを元に手を動かしながら学ぶ書籍です。主に以下の3つについて丁寧に解説します。

●Rustの概要と開発環境
●Rustの基本的な文法と機能
●Rustによる簡単なアプリ開発

なお本書はエンジニアのための情報共有コミュニティ「Zenn」で公開されている大人気の「Rust 入門」を元にした書籍です。

【対象読者】
Rustに初めて触れるプログラマー

【本書のポイント】
・基本的な文法について丁寧に解説
・Rustの機能を学ぶのに適したサンプルを用意
・学習をもっと深めたい方に向けて「メモ」や「参照」で補足

【目次】
Chapter1 Rust
Chapter2 環境構築
Chapter3 Rustの文法と機能
Chapter4 アプリケーションの開発

【著者プロフィール】
mebiusbox(メビウスボックス)
趣味でフリーソフトウェアを開発。エンジニア向けのコミュニティに記事を投稿することが多い。コンピュータグラフィックスに関する記事を書いて公開している。最近は Rust や Three.js も扱っている。

画像01
画像02
画像03

開発環境の準備や便利なツールの紹介

Windowsでの開発環境を元に解説します。具体的には、PowerShellやターミナルの環境構築、ツールチェインのインストール、rustup、cargo、rustcの概要、VSCodeのインストールとスニペットについて解説します。また、Rustの言語サーバであるrust-analyzer、Rustプログラムを簡単に試せるRust Playground、簡単なRustプログラムを書いてパッケージを作成する方法、開発に便利なさまざまなツールについても解説します。

画像04

基本的な文法について丁寧に解説

Rustの基礎的な文法、制御構文、 構造体、列挙型、数列、スライス、ジェネリクスの使い方、パターンマッチングの使い方、エラー処理の方法、所有権について紹介します。また、トレイト、動的ディスパッチ、並列処理と非同期処理、イテレータとコレクションの使い方、パッケージ管理ツール cargo の使い方、モジュールの使い方、開発ツールの使い方も解説します。

画像05

アプリケーションの開発方法を体験

単語推理ゲーム(相手が設定した単語を推理するゲーム)や並列処理を利用したプログラム(レイトレーシングでレンダリングするプログラム)を作成します。これらのアプリケーションの作成を通じて、プロジェクトの作成方法、ターミナルからの入出力、コレクションの使い方、イテレータの使い方を学ぶことができます。また、randクレート、rayonクレート(並列処理)、imageクレート(画像の読み書き)、icedクレート(GUI)、minifbクレート(画像の表示)、算術関数、演算子のオーバーロード、並列処理、モジュール、トレイトなどについても学ぶことができます。

Chapter 1 Rust
01 概要
  Rustの特徴
  Rustの誕生
  Rustはどういうプログラミング言語なのかエディション
02 互換性
03 まとめ

Chapter 2 環境構築
01 Rustをインストールする前の準備
  PowerShellのバージョンを確認
  wingetのインストール
  最新のPowerShellをインストール
  Windows Terminal
  Git
  Anaconda(Miniconda)
02 Rustのインストール
  rustup
  cargo
  rustc
03 Visual Studio Code
  スニペット
04 rust-analyzer
05 Rust Playground
06 Hello, World!
  パッケージの作成
  Rustプログラムの実行環境
07 その他のツール
  Terminal-Icons
  Oh My Posh
  winget
  PowerShellのエイリアス
  bat
  lsd(LSDeluxe)
  delta
  simple-http-server
  cargo-make
08 まとめ
  本章で学んだこと

Chapter 3 Rustの文法と機能
01 基本
  コメント(Comment)
  式と文(Expression and statement)
  ブロック(Block)
  オブジェクト(Object)
  組み込みデータ型 (Primitive Type)
  型の別名(Alias)
  所有権(Ownership)
  関数(Function)
  print!マクロ
  束縛(Binding)
  シャドーイング(Shadowing)
  定数(Const)
  参照(Reference)
  可変性(Mutable and immutable)
  文字列(String)
  スタティック変数
  命名規則
  参照外し(Dereference)
  参照と可変性の関係
  借用チェック(Borrow Checker)
02 コピートレイト(Copy Trait)
03 構造体・列挙型
  構造体(Struct)
  列挙型(Enum)
04 クロージャ(Closure)
  Fnとfn
05 制御構文
  if式(else、else if)
  loop式
  while式
  for式
06 数列・スライス
  数列(Range)
  スライス(Slice)
07 ジェネリクス(Generics)
  Option型
08 パターンマッチング(Pattern
  match式
  マッチガード(Match Guard)
  パターンによる束縛
  if let式
09 エラー処理(Error
  panic!マクロ
  Result型
  unwrapメソッド
  expectメソッド
  エラー伝搬(Error Propagation)
  コンビネータ
10 RAII
  Derefトレイト
  Dropトレイト
  3つのメモリ領域(データ、スタック、ヒープ)
  Box型
  Rc型
11 ライフタイム(Lifetime)
  staticライフタイム
12 トレイト(Trait)
  トレイトとは
  継承
  derive属性
  Fromトレイト
  マーカートレイト(Marker)
  Sizedトレイト
13 動的ディスパッチ
  トレイトオブジェクト
  dyn Trait型、impl Trait型
14 内部可変性(Interior
  Cell型
  RefCell型
  Weak型
15 並列処理
  スレッド
  Send・Syncトレイト
  Arc型
  RwLock型
16 所有権
17 所有型と参照型
18 Cow型(Clone-on-write)
19 イテレータ(Iterator)
  アダプタ
20 コレクション(Collection)
  Vec型
  String型
  HashMap型
  イテレータからコレクションに変換
  イテレータを返すメソッド
21 Cargo
  パッケージ、クレート
  ターゲット
  TOML形式
  cargo initコマンド
  cargo buildコマンド
  cargo cleanコマンド
  cargo runコマンド
  cargo checkコマンド
  cargo treeコマンド
  cargo install[uninstall]コマンド
  cargo searchコマンド
  cargo publishコマンド
  デバッグビルド、リリースビルド
  外部パッケージ
  ワークスペース
  Cargo.toml
22 モジュール(Module)
  モジュールの定義
  パス(Path)
  モジュールの利用(use)
  モジュールツリー
  モジュールの再公開
23 テスト(Unit
  cargo testコマンド
  assertion
  should_panic属性
  testsターゲット
24 ドキュメントコメント
  ドキュメントコメントの書き方
  cargo docコマンド
  rustup docコマンド
25 フォーマッタ(rustfmt)
26 リンター(clippy)
27 マクロ(Macro)
  宣言的マクロ
  手続きマクロ
28 非同期処理
  Future型
  async/.await
  tokioクレート
29 unsafe
30 Tips
  Defaultトレイト
  分解束縛
  デバッグ時やテスト時のみ有効なコード
  属性
  演算子のオーバーロード
  Preludeモジュール
  DisplayトレイトとDebugトレイト
  特殊なマクロ
  Nightly版
  cargo-audit、cargo-outdated
31 まとめ
  本章で学んだこと

Chapter 4  アプリケーションの開発
01 単語推理ゲーム
  サンプルコードについて
  プロジェクトの準備
  単語辞書の読み込み
  ゲーム構造体
  推理ロジックの実装
  GUIの実装(icedクレート)
02 レイトレーシング
  サンプルコードについて
  プロジェクトの準備
  画像の出力
  ベクトル
  クォータニオン
  基本的な構造体の実装
  カメラ
  球体の追加
  球体の法線
  確認用のウィンドウ
  モジュール化
  複数の物体への対応
  アンチエイリアシング
  拡散反射
  材質
  鏡面反射
  屈折
  大量に表示してみよう
  テクスチャ
  画像テクスチャ
  発光
  四角形
  コーネルボックス
  光学のおはなし
  モンテカルロレイトレーシング
03 まとめ
  本章で学んだこと

Appendix
01 std::option::Option型
02 std::result::Result型
03 std::vec::Vec型
04 std::string::String型
05 std::collections::HashMap型
06 std::iter::Iteratorトレイト
  アダプタ
07 std::f64モジュール
  定数
  数学関数(std::f64モジュール)
08 Rustをビルドしてみよう

付属データはこちら

会員特典はこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2024年01月05日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 00v
上から8行目(空行含む)
比較的優しい
比較的易しい
2024.01.05
1刷 099
本文上から2行目(リスト除く)
スライスは参照の1つで、別のオブジェクト内の連続した要素を指し示すものです。
スライスは連続した要素を指し示すものです。
2024.01.05
1刷 103,104
P.103下から1行目、P.104上から1行目、
このような仕組みを短絡評価またはショートサーキットといいます。
<記載を削除>
2024.01.05
1刷 114
上から6行目
演算子
(ドット)
2024.01.05
1刷 117
下から12行目(空行含む)
ヒープメモリはプログラム実行中に利用できるメモリで、スタックメモリよりも大きなサイズを利用できます。ただし、利用するにはオーバーヘッドがかかります。また、スタックメモリのサイズはヒープメモリに比べてかなり限られているので、ヒープメモリを積極的に利用することになります。
ここもスタックメモリと同様にプログラム実行中に利用できるメモリですが、スタックメモリとは管理する方法が異なり、利用するにはオーバーヘッドがかかります。また、スタックメモリに格納する場合はそのサイズがわかっている必要があります。コンパイル時にサイズが不明だったり、動的にサイズが変わる場合はヒープメモリを利用することになります。
2024.01.05