見出し画像

TECHCAMP学習30日目

【サービス開発】
アプリケーション開発手順

目的
アプリケーション作成の一般的なフローを理解
制作フロー全体で、エンジニアが関与する部分を明確に把握

企画 どんなアプリを作るか決める
要件定義 アプリの仕様や要件を洗い出す
設計 手順書や設計図を作る

デプロイ アプリを外部サーバーに移して、全世界からアクセス可能にする。

保守・運用 定期確認・トラブル対応

企画→要件定義→設計→開発→保守・運用

【サービス設計】

目的
企画を実際に体験すること
要件定義を実際に体験すること

●企画
大切 どんなアプリも誰かの問題を解決したり、誰かの欲求を満たすものだと意識すること

ペルソナ
サービスを使用するユーザー

PicTweetのペルソナ
性別、年齢、職業、趣味

ユーザーストーリー
ペルソナの課題に対して、どのような機能で解決するか?を明確にしたモノ

●要件定義
アプリの仕様を把握するために詳細まで言語化

ページ毎に要件を詳細に書き出していく


【サービス設計 基本設計とDB設計】

目的
基本設計における画面遷移図を理解
DB設計の一例を体験し理解

要件定義→基本設計→詳細設計

基本設計
アプリ制作に必須の要素となる画面、画面遷移の流れ

詳細設計
実際に書くべきコードを洗い出す作業
Railsであればルーティング、コントローラーそのアクション、モデルなど

DB設計
データベースを設計すること
具体的に考える項目としては、テーブル、カラム、アソシエーション

エンティティ
サービスで扱われるデータ
ユーザー管理機能、写真の共有機能
エンティティとしては、ユーザ管理に関する情報、共有する写真に関する情報
異なるジャンルの情報は混合させないようにする

モデリング
エンティティの分類や関連付けなどをして模型のように表す

正規化
データベースの構造を効率化でシンプルな形にする
非正規形→第一正規形→第三正規形

制約
データを扱う際に制限をかけること

NOT NULL制約 空の値が入らないようにする
t.型 :カラム名, null: false

一意匠制約 重複するデータを禁止する

主キー制約 NOT NULL制約と一意性制約を両方設定

外部キー制約 外部キーの対応するデータが必ず存在しなくてはいけない
t.型 :カラム名, foreign_key: true

チェック制約 値が条件を満たしているか

DBを図にしよう
ER図 DBのテーブルを図で表記したもの
Entity Relationship Diagram

usersテーブル name、email
tweetsテーブル text image user_id
commentsテーブル comment_text tweet_id user_id

この記事が気に入ったらサポートをしてみませんか?