はじめに

本書ではRustを使ってウェブアプリケーションを開発する方法を学びます。

本書の見方

本書は

  • 他の言語ではサーバーアプリのチュートリアルに沿って開発をしたことがある
  • Rustの基本言語仕様をざっくり把握している

というレベル感の方を対象に、フレームワークを使ったサーバーアプリの開発が理解できるようになることを狙いとしています。

各ページごとに、サンプルアプリの実装を進めながら実装のポイントをおさえていきます。

学習に利用するサンプルアプリ

サンプルアプリとして Twitter クローンを実装してみます。

下記に各種設計資料を示しますが、今回はグレーになっていない部分を実装します。

URL設計

各画面のURLをどうするか検討しておく必要があります。

メソッド&パス処理内容処理後の表示内容認証
GET /ツイート一覧を取得するホーム画面必須
POST /tweets/new投稿フォームの内容に従ってツイートを作成するホーム画面必須
POST /tweets/:id/delete指定されたIDのツイートを削除するホーム画面必須
GET /login-ログイン画面-
POST /account/sessionメールアドレスとパスワードでログイン認証するホーム画面 or ログイン画面-
GET /register-アカウント作成画面-
POST /account/newフォームの内容でアカウントを作成するホーム画面-

ユースケース

ユーザーの要求とシステムの振る舞いを視覚的に明確化したものがユースケース図です。

ユースケース

ロバストネス分析

ユースケースを、よりシステムの観点で記載したものがロバストネス分析図です。

ロバストネス分析

ドメインモデル

ビジネスモデルをデータの観点で洗い出したものがドメインモデル図です。

今回はそこまで複雑な機能は作り込まずシンプルなモデリングにしているため、登場するドメインモデルは少なめになっています。

ドメインモデル