DDDハンズオン

Preview:

Citation preview

DDDハンズオン中国地方DB勉強会 in 岡山

What is it?

DDDからデータ設計を紐解く

What is it?

データ設計 is 何?

What is it?

ドメインを紐解けばデータ設計が見えてくる

What is it?

その過程をみんなで体験しましょう

※今日はチームで組みます

What is it?

MySQLチーム

What is it?

PostgreSQLチーム

What is it?

MS SQLチーム

あじぇんだ

1 自己紹介 2 簡単な解説 3 今日の課題 4 ハンズオン 5 まとめ

あじぇんだ

1 自己紹介 2 簡単な解説 3 今日の課題 4 ハンズオン 5 まとめ

自己紹介名前:曽根 壮大(そね たけとも) 年齢:30歳(三人の子供がいます) 職業:Webエンジニア

所属:日本PostgreSQLユーザ会

  技術的にはLL系言語とかRDBが好きです

あじぇんだ

1 自己紹介 2 簡単な解説 3 今日の課題 4 ハンズオン 5 まとめ

説明

今からすること

説明

DDDハンズオン

説明

1. コアドメインを紐解く 2. シナリオを作る 3. 難しいところ(ドメイン)を探す 4. モデリングする(エンティティなど) 5. テーブル設計に落としこむ 6. 2~5を繰り返す

あじぇんだ

1 自己紹介 2 簡単な解説 3 今日の課題 4 ハンズオン 5 まとめ

今日の課題

駐車場

今日の課題

駐車場 is 何?

今日の課題

駐車場 is 何?

今日の課題

駐車場 is 何?

今日の課題

駐車場 is 何?

今日の課題

無人有料駐車場(時間貸し) の管理システム

今日の課題

どんな機能が必要か? ↓

まずはシナリオを作る

今日の課題

基本シナリオ と

派生シナリオ

今日の課題

シナリオをモデリングする

今日の課題

モデルをテーブルに変える (実装する)

今日の課題

作って欲しいもの

今日の課題

• 優先順位のついたシナリオのリスト • ER図やクラス図など • ドメインの理解になるものならなんでも • サンプル実装(テーブル設計)

今日の課題

振り返りとレビュー

今日の課題

時間は50分ずつ ☓ 3回 (最初はちょっと短いですが)

今日の課題

間で発表とレビューがあります

あじぇんだ

1 自己紹介 2 簡単な解説 3 今日の課題 4 ハンズオン 5 まとめ

モデルを小さくする

実装出来る範囲のシナリオにする ↓

シンプルなシナリオから試す

説明

1. コアドメインを紐解く 2. シナリオを作る 3. 難しいところ(ドメイン)を探す 4. モデリングする(エンティティなど) 5. テーブル設計に落としこむ 6. 2~5を繰り返す

説明

1. コアドメインを紐解く 2. シナリオを作る 3. 難しいところ(ドメイン)を探す 4. モデリングする(エンティティなど) 5. テーブル設計に落としこむ 6. 2~5を繰り返す

ER図

今日の課題

さぁはじめましょう!!

ハンズオン

成果を発表(説明)しましょう

1チーム 2分程度

ハンズオン

• びっくりしたこと、気づいたこと • 学んだこと • 次にやってみること

ふりかえり(1回目)

どんなシナリオがある?• 週末料金? • 夜間料金? • 煩雑期と閑散期で値段が変わる? • 店舗利用による無料範囲 • 会員割引 • 誤入場をどうしよう? • 駐車券なくしちゃったら? • とめっぱなしの車はどうしよう?

システムの分割

変更があると変わる部分は?

システムの分割

変更があると変わる部分は? ↓

関係を分割する

変更がありそうなドメイン

• 駐車場の種類 • 駐車場の金額 • 消費税 …など

実装で確認する

モデリングを確認する

実装で確認する

モデリングを確認する ↓

テーブル設計を実際にしてみる

実装で確認する

テーブル設計で不備が出たら?

実装で確認する

テーブル設計で不備が出たら? ↓

シナリオとモデルを見直す

ハンズオン

さぁはじめましょう!!(二回目)

ハンズオン

• びっくりしたこと、気づいたこと • 学んだこと • 次にやってみること

ふりかえり(2回目)

ハンズオン

さぁはじめましょう!!(三回目)

ハンズオン

成果を発表(説明)しましょう

1チーム 3分程度

ハンズオン

全体ふりかえり

あじぇんだ

1 自己紹介 2 簡単な解説 3 今日の課題 4 ハンズオン 5 まとめ

まとめ

ドメインはシンプルを目指す

まとめ

ドメインはシンプルを目指す

捨てる技術

まとめ

システム複雑化したときは

ドメインを再検討

するのが一番の近道

まとめ

モデルとデータ設計は

必ずも一致しない

まとめ

モデル作りに注力しすぎない

まとめ

モデル作りに注力しすぎない

手も動かしてみる

ご参加ありがとうございました。