サービス設計
ニュー単語
デプロイ:公開
- depoly:折ら(ploiier)ない(des-) -> 配備する、配置する、展開する
- depoly:折ら(ploiier)ない(des-) -> 配備する、配置する、展開する
ペルソナ:サービスを使用するユーザー(ターゲットとは似て非なる言葉。)
- persona:語源不詳 -> 仮面、役柄、人物
- 派生語 person:人物
ユーザーストーリー:ペルソナの課題に対して、機能をあてがうこと。(解決までのストーリー)
要件定義:機能を言語化。チームで共通認識を持つ。
基本設計:大枠を固める。画面や画面遷移の流れ
詳細設計:具体のコードを決める。必要な処理をコード化。
DB設計:エンティティの抽出。エンティティ≒テーブル。登録される瞬間を意識。
外部キー:テーブル同士が、「1対多」の関係にあるとき、多の方に設定する。
usersとtweetsの関係
users | tweets |
---|---|
1 | 多 |
↓
tweetsテーブル(子)にuserテーブル(親)の情報を書く
id | tweet | user_id |
---|---|---|
35 | hoge | 1 |
モデリング:エンティティの関係性とかを図示。
正規化:DBの効率的でシンプルな形に
- 非正規形:全部の情報を一つのテーブルにごちゃ混ぜに登録してる状態
- 第一正規形:重複削除
- 第三正規形:エンティティを分離してアソシエーションで整理。(二と三はほぼ同義)
制約:DBに直接設定するデータの制限。概念としてはvalidate*1と近い。
└後からの変更は大変なので、最初によく考える。
- NOT NULL制約:nullはダメ制約
t.string :name, null: false
一意性制約:一意じゃないとダメ制約。
主キー制約:主キーに対して、NOT NULL かつ 一意性制約
外部キー:存在しないキーに連携させてはダメ。連携されてるデータを消してはダメ。
= 連携された状態で存在することを保証。
t.references :user(カラム名), foreign_key: true
チェック制約:文字数制限とかをチェック
ER(Entity Relationship)図:文字通りの図
気づき
- 長いページは先に一通り流し見して、ワード(or 項目)を抜き出してから、詳細を読み進める。
英単語
entity:存在している(ens)こと(-ity) -> 存在物、実在、本質 => サービスで扱われる情報
- essential:存在(esse)している(-ens)こと(-ia)の(-alis) -> 絶対必要な
- essential:存在(esse)している(-ens)こと(-ia)の(-alis) -> 絶対必要な
depoly:折ら(ploiier)ない(des-) -> 配備する、配置する、展開する
- (関連語)employ:中に(in-)折り込む(plico)こと -> 雇う、採用する、用いる
*1:validate:検証する