カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

0-3

設計

本教材ではユーザー投稿型のブックレビューサイトを開発していきます。

当パートではブックレビューサイトの開発に必要な設計を解説します。

トップページ

本のレビュー一覧が表示されるページになります。新しい順に並ぶ仕様で、画像には写っていませんが、9個以上の場合はページネーションが表示されます。
Image from Gyazo

レビュー投稿ページ

レビューを投稿するページになります。画像のアップロードは任意で投稿できます。

また、このページはログイン認証をかけてログインしている状態のみアクセスできるようにコントロールしていきます。
Image from Gyazo

レビュー閲覧ページ

レビューの詳細を閲覧するページになります。
Image from Gyazo

ログイン

会員登録済みのユーザーがログインするページになります。
Image from Gyazo

会員登録

新規の会員登録をするページになります。本教材ではメール認証は実装しないため、即時ログインできるようになります。
Image from Gyazo

必要な機能の洗い出し

本教材はでは以下の機能を実装していきます。

Copied!
- ログイン/会員登録機能 - レビュー閲覧機能 - レビュー投稿機能

必要なデータの洗い出し

前項の機能を実現するために必要な情報を洗い出してみましょう。

ユーザー情報

  • 名前
  • メールアドレス
  • パスワード
  • etc...

レビュー情報

  • 本のタイトル
  • レビュー本文
  • 本の画像
  • レビューした人は誰か?
  • レビュー投稿日時

2つのデータの関係性を考えてみる

ユーザーの情報とレビューの情報の関係性は以下のようになります。

Copied!
- ユーザーは複数のレビューを投稿することができる - レビューAに関して、レビューAを投稿したユーザーは一人しかいない

こういった関係性を1:多の関係性と言います。

Image from Gyazo

これらの関係を*ER図にすると以下のようになります。

Image from Gyazo

このテーブル設計により、ユーザーが複数の投稿を管理しながら、誰がどのレビュー投稿をしたのか管理できるようになります。

*ER図とは、データベースのテーブル(Entity)とテーブル同士の関連(Relationship)を図に表したものであり、データベースのテーブル設計に用いられます。

テーブル設計する際はER図を書きます。 ER図に関しては、こちらのURLを参考にしてください。

若手プログラマー必読!5分で理解できるER図の書き方5ステップ

AWS設計

本教材ではAWSを使ったインフラ構築も行いますので、サーバー全体のイメージを掴むためにまずは以下の図をご覧ください。

Image from Gyazo

Webアプリケーションを全てAWS上のサービスで展開していきます。この章では簡単な紹介に留めておきますので、各サービスの詳細はハンズオンで構築しながら学んでいきましょう。

  • VPC : バーチャルプライベートクラウド。擬似的に隔離されたネットワークを構築できるので、1アプリにつき1つのVPCを割り当てています。
  • EC2 : Elastic Cloud Compute。伸縮可能なクラウドサーバーになり、EC2上でLaravelが動作する環境を構築していきます。
  • RDS : リレーショナルデータベースサービス。各種データベースをクラウド上に構築でき、耐障害性もデフォルトで兼ね備えているため、本教材ではRDSを利用します。
  • ELB : Elastic Load Blancer。負荷分散のため複数のEC2にアクセスを振り分けるサービス。ただし、本教材ではEC2を1台で動作させるため、負荷分散機能は使わず利用します。
  • ROUTE53 : ドメインの名前解決サービス。所謂DNSサーバーに当たるサービスで独自ドメインとELBをつなぐ役割を果たしています。

最後に

以上でインフラ〜アプリケーションの設計を終了します。

このパートの全体像を頭に入れておくことで、全体を意識しながら開発を進められるので、忘れてしまったらいつでも戻って見直してください。

お疲れ様でした。

現在のパート (1)
全パート (83)
みんなで助け合おう!
現在のパートのディスカッション 全1件
0-3
kick 2020-04-03
質問です

ROUTE53 : ドメインの名前解決サービス。所謂DNSサーバーに当たるサービスで独自ドメインとRLBをつなぐ役割を果たしています。

上記の説明で、RLBとはELBのタイポでしょうか。

RLBが唐突に出てきましたが、AWS全体設計のダイアグラム中に3つ並んだIPアドレスとELBの間にROUTE53が位置しているので、RLBはELBなのだろうと解釈しました。