|
タイトル |
RustによるWebアプリケーション開発 設計からリリース・運用まで(ラストニヨルウェブアプリケーションカイハツ セッケイカラリリース ウンヨウマデ) |
|
★Rustによるアプリケーション開発のベストプラクティス!
Rustを現場で使うときがきた!
Rust経験豊富な筆者が、貴重な知識とテクニックを惜しみなく伝授。
「蔵書管理アプリケーション」の実装を通じて、Rustによる設計、開発、保守、運用までをハンズオンで学ぶ!
コードも丁寧に解説。
【目次】
第1章 本書で開発するもの
第2章 開発環境の構築
第3章 最小構成アプリケーションの実装
第4章 蔵書管理サーバーアプリケーションの設計
第5章 蔵書管理サーバーの実装
第6章 システムの結合とテスト
第7章 アプリケーションの運用
第8章 エコシステムの紹介
第1章 本書で開発するもの
1.1 本書で開発する蔵書管理システムの概要
1.2 アプリケーションの機能
1.3 システムの設計
第2章 開発環境の構築
2.1 一般的なRustの開発環境構築
2.2 Docker Composeを用いたローカルPCでの開発環境構築
2.3 タスクランナーcargo-makeの導入
2.4 フロントエンドの環境構築
第3章 最小構成アプリケーションの実装
3.1 新しくプロジェクトを作る
3.2 「axum」でサーバーを起動する
コラム:Rustの非同期ランタイム
3.3 ヘルスチェックを実装する
コラム:impl IntoResponse
3.4 ユニットテストを書く
3.5 データベースと接続する
3.6 デプロイパイプラインを構築する
コラム:GitHub Actions
第4章 蔵書管理サーバーアプリケーションの設計
4.1 レイヤードアーキテクチャとは
4.2 なぜレイヤードアーキテクチャを採用するか
4.3 今回採用するレイヤードアーキテクチャ
4.4 依存性注入
4.5 レイヤードアーキテクチャをRustで実現するには
4.6 レイヤードアーキテクチャで再実装
4.7 各ワークスペースメンバーへのコードの移動
コラム:async-traitとは何か
コラム:RustのDIコンテナの候補としての「shaku」
第5章 蔵書管理サーバーの実装
5.1 実装の概要
5.2 シンプルな蔵書データの登録・取得処理の作成
コラム:todo!マクロとunimplemented!マクロ
コラム:コンパイルが成功するのにrust-analyzerのエラーが表示される場合の対応
5.3 本格実装の事前準備
5.4 ユーザー管理機能の実装
5.5 蔵書のCRUD機能のアップデート
5.6 蔵書の貸出機能の実装
5.7 蔵書データへの貸出情報追加の実装
5.8 フロントエンドとの結合動作確認
第6章 システムの結合とテスト
6.1 本書のアプリケーションのテスト戦略
6.2 rstestを使ったテスト
6.3 mockallを使ったテスト
コラム:「モック」
6.4 sqlxを使ったテスト
6.5 アプリケーションのテスト実装
第7章 アプリケーションの運用
7.1 オブザーバビリティ
7.2 ビルドスピードの改善
コラム:lld
コラム:Craneliftを利用する
7.3 OpenAPI
第8章 エコシステムの紹介
axum、actix-web、rocket、warp、tonic……など