Web アプリ開発で学ぶ Rust 言語入門

ウェブアプリカイハツデマナブラストゲンゴニュウモン

Web アプリ開発で学ぶ Rust 言語入門の表紙
プログラミング
著者:
佐藤昭文(サトウアキフミ)
出版社:
秀和システム
出版日:
2022年09月30日頃
ISBN:
9784798067315
在庫:
在庫あり
0
中級者向け
プログラミングRustWeb開発HTTPデータベースaxumsqlxチュートリアル並行性安全性

なぜ注目されているか

言及数
288位
総合692位 ↑ 3 ランクアップ 言及 12 件・うち記事 10 件を掲載
出版前出版日04820222023202420252026

書籍紹介

本書は Web 開発に特化した「Rust×Web 開発」の入門書です。Rust の基礎文法から Web アプリの開発までを網羅しています。チュートリアル形式なので段階的に学習が進められます。また、解説するサンプルは、Web 開発ならよく知っている題材を教材としました。そのため、Rust による Web 開発の理解を深めることができます。

Rust はフロントエンドのエコシステムや Microsoft/Google/AWS でも採用されるなど、近年高い注目を集めています。Rust は安全性・並行性・速度にフォーカスしながらも、非常に優れた開発者体験も提供してくれます。一方でシステムプログラミング言語である Rust は、多くの Web 開発者にとって学習の敷居が高いと考えられることも事実です。本書は Rust による Web アプリ開発を通じて、Web 開発者の Rust の学習の入口となることを目指した本です。

第 1 章 Rust と Web 開発
第 2 章 Rust 基礎

第 3 章 axum を使って http リクエストを処理する

第 4 章 sqlx を使って CRUD を実装する

第 5 章 Todo アプリの体裁を整える

第 6 章 Todo にラベルをつける

第 1 章 Rust と Web 開発

第 2 章 Rust 基礎

第 3 章 axum を使って http リクエストを処理する

第 4 章 sqlx を使って CRUD を実装する

第 5 章 Todo アプリの体裁を整える

第 6 章 Todo にラベルをつける

技書の森解説

『Web アプリ開発で学ぶ Rust 言語入門』 (佐藤 昭文 著、秀和システム、2022 年 9 月発売) は、Web 開発の経験がある人を対象に、Rust の基礎文法から Web アプリケーションの開発までをチュートリアル形式で学ぶ入門書です。版元は本書を Web に特化した Rust の教科書と位置づけ、題材には Web 開発者になじみのある Todo アプリを使います。バックエンドは axum と sqlx で組み、画面は React で作るため、API サーバーからブラウザーの画面までを 1 冊の中でつないで動かせる構成です。サンプルコードは GitHub からダウンロードできます。

全 6 章の構成、Rust 基礎から axum の Todo API へ

第 1 章「Rust と Web 開発」で開発環境とエディターを準備し、第 2 章「Rust 基礎」で変数とデータ型、関数、制御構造、所有権、構造体とトレイト、async/await、クレートとモジュール、テストを順に押さえます。第 2 章の終わりには、エラーを扱いやすくする anyhow と thiserror、JSON を扱う Serde という、実装で頻繁に使うライブラリの節も置かれています。第 3 章「axum を使って http リクエストを処理する」では、Todo アプリの API を題材に、ロギング、POST リクエストと JSON レスポンス、テスト、メモリへの保存、バリデーションまでを段階的に組み立てます。第 4 章「sqlx を使って CRUD を実装する」は、Docker で PostgreSQL の環境を作るところから始まり、sqlx によるマイグレーション、リポジトリの非同期対応、Todo の CRUD とそのテストへ進みます。

所有権と非同期処理を Web の文脈で学ぶ意味

Rust はガベージコレクションを持たず、所有権と借用 の規則によってメモリ安全性をコンパイル時に確かめる言語です。JavaScript や Python のようにランタイムがメモリを管理する言語から移ってくると、最初の壁はアルゴリズムではなくコンパイラーが指摘する借用の誤りになりがちです。さらに Web サーバーは多数のリクエストを同時に待つため、Rust では async/await による 非同期プログラミング が実装の土台になります。axum は tokio のプロジェクトが開発する Web フレームワークで、sqlx は非同期に動く SQL ライブラリです。言語の規則を単独の例題で覚えるより、REST API のハンドラーやデータベースのリポジトリという具体的な置き場所の中で使うほうが、なぜその規則が必要なのかを実感しやすくなります。

React の画面とラベル機能まで進む第 5 章と第 6 章

第 5 章「Todo アプリの体裁を整える」は、フロントエンド開発の基礎と技術選定、要件整理から入り、Vite で React の開発環境を作り、MUI を使って Todo アプリの画面を実装したうえで、API を通じた Todo の保存、取得、更新までをつなぎます。第 6 章「Todo にラベルをつける」では、ラベルの CRUD とデータベースの設計、Todo とラベルを結び付けるリポジトリの修正、サイドナビゲーションやフォームでのラベル選択を加え、さらなる機能拡張の節で締めくくります。機能を 1 つ足すときに、テーブル、API のハンドラー、画面の 3 か所をどう連動させるかを通しで追える点は、言語仕様を主題にした文法書には無い効き目です。

版元が想定する読者は Web 開発の経験がある人です。HTTP のリクエストとレスポンス、JSON、データベースの CRUD といった語彙をすでに持っていれば、Rust に固有の考え方に注意を集中できます。第 5 章では React と Vite を使うため、JavaScript でのフロントエンド開発に触れたことがあると読み進めやすく、目次にはフロントエンド開発に不安がある読者に向けた節も用意されています。反対に、Rust の言語仕様を網羅的に学びたい人や、組み込み、システムプログラミングを目的とする人には、言語そのものを主題にした本のほうが合います。本書の Rust の基礎は第 2 章にまとめられ、第 3 章以降は Web アプリの実装が中心です。また axum と sqlx は版ごとに API が変わることがあるクレートなので、サンプルを動かすときはサンプルコードが指定する版にそろえると手戻りが少なくなります。

Rust を Web サービスの開発で使ってみたいものの、文法を覚えた先で何を作ればよいか分からない人や、普段の Web 開発の知識を足場にして Rust へ入りたい人にとって、Todo アプリ 1 本を完成させる過程で Rust の要所を一通り踏める本書は、最初の 1 冊として選ぶ価値があります。

言及した記事 (10 件)

この本は技書デッキのカードです (攻撃 14 / 備え 2) 図鑑でこの本を見る

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: