CODEBASE School 7week(2月26日週)

この週は、DB、テーブル設計・ER図、アプリケーション設計について講義。Twitterとか食べログとコンビニのレシートなど実際に身の回りにあるものを例にとって学ぶスタイル。凄くわかりやすかったです。(SQLの基本的な書き方とかPHPでのPDOの使い方はProgateとPHP本読んで各自頑張りましょうスタイル)

CODEBASE School 7week

  • テーブル設計・ER図
  • アプリケーション設計
  • 身近なサービスを例に設計を考える

テーブル設計・ER図

講義ででてきた単語メモ。(あんまり体系的に整理できてないけど、、)

  • 一つのオブジェクト = 一つのテーブル
  • 人とか物を一つのエンティティっていう。
  • ユースケース
    • エンティティがどんな感じで使うのか、使われるのかユースケースを考えた図
  • アクティビティー図
  • 状態遷移図
    • ECサイトを作るとして、買う、お金入金する、配送する、キャンセルする、などの流れ。
  • クラス図。ログインfunctionとか、ログアウトfunctionとか、を図にする
  • シーケンス図。とかもよく使う
  • UML
  • DBって多対多っていう関係性を持つことができないので、間に別の関係性(リレーション)を入れることで多対多を解決できる。多対多のリレーションが発生する場合は、間にその関係性がわかるテーブルを入れなきゃいけない。
  • データベースを作るときは、まずER図をかく。そしてデータベースで表現する
  • many to many
  • モデルとオブジェクトとエンティティって似たようなワードが出てきたけど、意味同じ?
    • 意味ほぼ同じ。世界観が違う
      • モデルは、MVCモデルで話してるときの呼び名
      • オブジェクトは、オブジェクト志向についての話をしている場合の呼び名
      • エンティティはER図を書いているときの呼び名

アプリケーション設計

Webアプリケーションの設計プロセス(講義資料がわかりやすかったので引用。備忘)

  • 要件定義

    • どんなシステム作りたいか
    • どんな価値を利用者に提供したいか
    • 何を解決したいか
  • 基本設計

    • ハードウェア、データベース、ソフトウェアの選定

      • クラウドサービス使うか?(AWS, GCP, Azure)
      • データベース何にするか?
      • アプリケーション、なんの言語で書くか?
    • データベース設計、テーブル設計

      • ER図
      • テーブルのカラム設計
    • システムの機能概要の設計

    • 外部システムとの連携方法の検討

      • 自分たちのサービスのコアビジネス、コアロジックはどこか
      • 外部サービスを利用して実装出来ないのか
  • 詳細設計

    • 画面のレイアウト及び機能設計
      • UIデザイン
      • 画面遷移
      • URL設計
  • コーディング

    • コーディング
    • テスト

身近なサービスを例に設計を考える

アプリケーションを作るときの流れの話。twitterっぽいアプリを作ることを例に。

  • ER図(基本設計)

f:id:shimabukuromeg:20180316142703j:plain

f:id:shimabukuromeg:20180316142233j:plain

  • 新規登録できること
    • Post /register
  • ユーザーはログインできること
    • Poost /login
  • ユーザーはツイートできる
    • ログインしてるユーザーの情報をみて色々取ってくる
    • Post /tweet
  • ユーザーは全体のツイート一覧を見ることができる
    • Get /
  • ユーザーは任意のツイートにLikeできる
    • Post /tweat/{twiteid}/like
  • ユーザーは任意のユーザーをフォローできる
    • Post /follw/{userid}
  • 個別のツイートページ
    • GET /tweet/tweetid
  • ユーザーページ

    • フォロー・フォローワーの情報
    • GET /user/userid
  • アプリケーション作成の流れ

    • 基本設計(基本的な機能など)
    • 画面レイアウトを考える
    • URLを設計する
    • ER図を考える(DBの設計)

まとめ

この回の講義はめちゃめちゃ内容濃かった。0からアプリケーションを作るまでの流れはとても勉強になった。これから自分でアプリケーションを書くときに、またこの講義のことを振り返るようにする。

その他

PHPでのPDOの使い方はPHP本などの自己学習だった。その際、以下ページがわかりやすかったのでメモ

qiita.com

qiita.com