サービス設計の流れ

サービス設計(アプリケーションが作られる流れ)を説明していきます!

 

① 企画  アプリケーションの内容を考察

② 要件定義  アプリケーションの仕様、要件の洗い出し

③ 設計  DBの設計などを行う

④ 開発  実際にプログラミング言語などを使用し開発を行う

⑤ 保守・運用  リリース後のバグの対処や追加機能の実装

 

上記がサービス設計の大まかな流れになります。

一つずつ詳しく解説していきます!

 

① 企画

ペルソナ(サービスを使用するユーザー)を考える

具体的には性別や年齢、職業、趣味などユーザーを細かくイメージし、生まれる課題を見つけていきます。

 

ユーザーストーリー

ペルソナの課題に対して、どのような機能で解決していくのかを明確にする。

例えば、ペルソナの課題が「好きな本を発信して、共有したいけど発信する場所がない」という課題だった場合、「発信する場所を作る」という機能がユーザーストーリーになります。

 

② 要件定義

開発者がアプリケーションの仕様を把握するために、詳細まで言語化するということです。これにより、複数の開発での共通認識を持つことができます。

例えば、ユーザー登録のトップページにはどのような表示をするのかを言語化するみたいな感じです。

 

③ 設計

基本設計 画面や画面遷移の流れをまとめる→画面遷移図を作成するとアプリケーションの全体がつかめやすい

 

詳細設計 書くべきコード、ユーザーが行う操作など書き出す。

DB設計 テーブルやカラム、関係性(アソシエーション)などを設計する

エンティティ(≒テーブル)を洗い出すポイントはデータが登録されるときに注目する

制約 データを登録するときに制限をかけること

例 

・NOT  NULL(ノットヌル)制約 → 空の値を登録できない

・一意性制約 → 同じデータを保存することはできない

・外部キー制約 → 特定のキーがないと保存できない

・チェック制約 → 条件を満たさないと保存できない 例 6文字以上

 

DBを可視化するためにER図を使います。

これによりテーブル間の関係性がわかりやすくなります。

 

以上がサービス設計の流れになります!

HTMLについて

HTMLとはブラウザ上に情報を表示するための言語のこと。

例えるならHTMLは家の間取りです。

 

それではそれぞれの基本を説明していきたいと思います。

HTMLの基本

要素とはウェブページの構造やコンテンツを定義するための部品である。

要素を表すために<>...</ >タグで表します。

要素の例です。矢印は例えています。

  1. <html>: HTML文書全体を囲むルート要素です。→家の外観や構造
  2. <head>: ページのメタ情報やスタイルシートJavaScriptなどを含むヘッダー部分を定義します。
  3. 家の屋根
  4. <title>: ブラウザのタイトルバーに表示されるタイトルを定義します。→家の表札
  5. <body>: ページの実際のコンテンツを含む本文部分を定義します。→家の中のスペース
  6. <h1>, <h2>, <h3>, ...: 見出しを定義します。数字が小さいほど重要度が高く、大きな見出しになります。→リビングやキッチンのような重要な部屋
  7. <p>: 段落を定義します。→部屋
  8. <a>: ハイパーリンクを定義します。href属性でリンク先のURLを指定します。→通路
  9. <img>: 画像を表示するための要素で、src属性で画像のURLを指定します。→壁にかけれた絵
  10. <ul>, <ol>, <li>: 順序付きまたは順序なしのリストを定義します。→タンス
  11. <div>: ブロックレベルの要素で、コンテンツをグループ化するために使用されます。→部屋

他にも要素がありますので一度ご自身で調べてみてください!

 

デプロイについて

デプロイとは作成したWebアプリケーションをユーザーが使えるようにすることです。

簡単に言えば、自分で作ったWebアプリケーションを世界中に公開するということです。

 

デプロイをするために様々なツールがあります。代表の一つとしてRenderがあります。GitHubと連携することができます。

 

そして公開したアプリのデータベースを直接操作する方法があります。

それがTablePlusです。これにより、ローカルで直しGitHub利用してデータベースを操作する手間を省くことができます。

 

RailsのPAY.JPについて

PAY.JPとはアプリケーションとクレジットカード会社の間に入り決済手続きを代行をしてくれるサービスです!

PAY.JPは仲介人です!

なぜ必要かというと、二つの問題を解決してくるからです。

1 各クレジットカード会社との手続き

 

2 セキュリティーの整備

 

1つ目は世の中にはたくさんクレジットカード会社が存在します。ですので手続きするときは各クレジットカード会社と手続きをしないといけません。アプリケーションからしたらとても大変ですよね(笑)さらに2つ目のセキュリティーですが、お客様の情報を頂くのでセキュリティ対策をしっかりしないといけませんがとても大変そうですよね(笑)そこを代行してくれるのがPAY.JPです!

RailsのFormオブジェクトパターン

Formオブジェクトパターンとは1つのフォーム送信で複数のモデルを操作した場合や、テーブルに保存しない情報にバリデーションを設定したい場合につかいます!

つまり、コントローラーが複数のモデルに指示出すこともできるけどすごく大変だから間(Formオブジェクト)に入ってもらおうということです!

例えるなら、コントローラーが王様でFormオブジェクトが執事みたいな感じです!王様は執事に指示するだけで、他の人たちに指示する必要がなくなるということです!そう思ったら執事が必要じゃないですか?(笑)

 

それではFormオブジェクトパターンの導入を説明していきます!

 

①モデルにてFormオブジェクトのファイルを作成し、クラスを定義する。

 

②form_withメソッド(テンプレートみたいなもの)に対応する機能とバリデーションを行う機能を持たせる。

ActiveModel::Modelをincludeするとform_withメソッドの引数と扱え、バリデーション機能を使用できる

このことをFormオブジェクトという。

 

③保存したい複数のテーブルのカラム名をすべてを属性値として扱えるようにする

attr_accessor :カラム名

attr_accessorを利用することで

値の取得ができるメソッドの定義(ゲッター)

値の更新ができるメソッドの定義(セッター)

それぞれの定義を一度にしてくれるのがattr_accessorである。

 

④バリデーションの処理を書く

 

⑤データをテーブルに保存する処理を書く

 

⑥コントローラーでnew,createアクションでFormオブジェクトのインスタンスを生成するようにする

 

⑦フォーム作成の部分をFormオブジェクトのインスタンスを引数として渡す形にする

 

以上がFormオブジェクトパターンの導入の流れになります!

Railsのdeviseついて

deviseとはアプリにユーザー管理機能を装備するときに便利なgemです!

そもそもユーザー管理機能とは何なのかというと

アカウント作成や認証、データの管理のことです。

例えばX(旧twitter)やInstagramでログインや投稿するときに

必ずアカウントが必要だと思います。これがユーザー管理機能に該当します。

 

それではdeviseの導入方法をお伝えしていきます!

① Gemfileの最後の行にgem 'devise'と記述

 

② ターミナルにてディレクトリをdeviseを導入するアプリに移動し

  bundle installと記述

 

③ ローカルサーバーを再起動するためにrails sでサーバーを立ち上げ

  control + cを記述し再起動 (gem導入するときは必ず再起動する)

 

④ devise専用のコマンドで設定ファイルの作成をターミナルでする。

  rails g devise:install

 

⑤ ユーザー情報を管理するためのモデルを作成 rails g devise user

  また自動的にroutes.rbにdevise_for :usersが追記される。これは本来自分で

  ルーティングを設定しないといけないがdeviseは自動的にルーティングを 

  設定してくれます。

 

⑥ テーブル,マイグレーション作成

  db/migrate/20xxxxxxxxxxxxxxxx_devise_create_users.rbでテーブルを確認

  デフォルトでemailカラムとencypted_passwordカラムがあります。

  マイグレーションを実行 rails db:migrate

 (テーブル・カラム情報も変更したら再起動する)

  マイグレーション作成後にカラムを追加する場合は下記で追加できる

  rails g migration Add カラム名To追加先テーブル名 追加するカラム名:型

 

⑦ deviseのビュー作成 rails g devise:views

 

以上がdevise導入の大まかな流れになります!

 

 

 

 

 

 

 

Railsのデータベースとモデルについて

データベースとはデータを保管してくれる

モデルとはデータベースのデータを情報を取得や受け渡すところ

例えるならデータベースは本棚でモデルは図書室の職員さんです。

そして本棚の中には様々な本があります。特定の本を職員さんが探すのは大変だと思いませんか?探す苦労を解消するために本の種類や作者で分けておくラベルがあれば探す苦労がなくなると思いませんか?それがテーブルになります。テーブルにはカラムレコードがあります。カラムは本の作者やジャンルなど大まかな枠組みでレコードは作者、ジャンル、タイトルなど1冊の本の情報をまとめたものです。

 

それではデータベースとモデルの作成の流れを説明していきます!

① モデル(職員さん)の作成

1個のテーブルにモデル1個作成します。

ターミナルでrails g model モデル名←単数形

 

② マイグレーション(テーブルの中身)作成

モデルからテーブルの中身を作るためにはマイグレーションというファイルを作ります。

下記にカラムを記述する。

db/migrate/20XXXXXXXXXXXX_create_モデル名.rb

記述後ターミナルでrails db:migrateを実行

 

以上がデータベースとモデルの作成の流れになります!

 

マイグレーション作成後の修正について

万が一、マイグレーション作成後にカラム名の間違いに気づいてしまった場合は一度マイグレーションの戻してから訂正します!

その時に戻すコマンドがrails db:rollbackしてカラム名を訂正して再びrails db:migrateを行うことで訂正することができます。

 

最後にマイグレーションの状況確認するツールとしてrails db:migrate:statusを入力しupなら有効downなら無効と確認することができます!