ほげほげパッチ

有る事無い事 徒然なるままに

サービス設計

ニュー単語

  • デプロイ:公開

    • 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) -> 絶対必要な

  • depoly:折ら(ploiier)ない(des-) -> 配備する、配置する、展開する

    • (関連語)employ:中に(in-)折り込む(plico)こと -> 雇う、採用する、用いる




*1:validate:検証する