subaru-hello / Zeroken

一軒目に飲むお酒と飲む順番を提供するアプリ
5 stars 0 forks source link

Zeroken APIの考察 #137

Open subaru-hello opened 2 years ago

subaru-hello commented 2 years ago

API部分をマイクロサービス化させたい 「Clean Architecture」と「オブジェクト指向設計実践ガイド」の練習

目的

ルール

private

def hoge end

def huga end

def page end

end



### モデリング
1
ユーザーはお酒の強さを診断することができる
診断結果(お酒の強さ)に応じてお酒の飲む順番をサジェストすることができる
診断結果は履歴として保存することができる
下戸と診断された場合、下戸証明書が発行される
ユーザーはTwitterで診断結果を共有することができる
お気に入りの酒対策薬をマイページに保存することができる
ユーザーはお酒の一覧を見ることができる

2

- 最重要ビジネスロジック
- 最重要ビジネスデータ

### 最低限欲しいメッセージ
最上位
「お酒の強さを診断して次の飲み会で飲むお酒の順番を提供する」

下位
 お酒の強さを診断する
 次の飲み会で飲むお酒の順番を提供する
「ユーザーはapi keyを使ってログインすることができる」
 api keyを発行する
  ログインする
 新規登録することができる
 診断結果を酒豪、やや酒豪、普通、やや下戸、下戸の5パターンで表示する
診断結果は履歴として保存することができる
下戸と診断された場合、下戸証明書が発行される
ユーザーはTwitterで診断結果を共有することができる
お気に入りの酒対策薬をマイページに保存することができる
ユーザーはお酒の一覧を見ることができる

### 備考
- DDD
 顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法
<img width="1056" alt="スクリーンショット 2022-09-07 22 52 49" src="https://user-images.githubusercontent.com/79771445/188895856-7aa3562c-582b-4839-bb0f-a960357b3dd4.png">
(https://mintaku-blog.net/ddd-entity-modeling/)
- エンティティ(DDD)
一意なものを表現する概念
一意であるため長期的に変化できるオブジェクト
それ以外の意味を持つことができないオブジェクト

- 値オブジェクト
意味が変わりゆくオブジェクト
一意でない
住所、誕生日、名前など、外見が同じでも意味が2つ以上持つ可能性があるオブジェクトを指す
- モデリング(DDD)
エンティティを抽出する作業
一意な識別子を探す作業とも言える
エンティティの持つ振る舞い(メソッド)を発見する作業

- エンティティ(Clean Architecture)
 企業のビジネスルール
 最重要ビジネスロジックと最重要ビジネスデータをカプセル化させたオブジェクト

- 最重要ビジネスロジック
 お金を生み出したり、節約に役立ったりするロジックの事。顧客が Zerokenを使う理由となるコアドメイン。
- 最重要ビジネスデータ

- ユースケース
 アプリケーションのビジネスルール
 インプットからアウトプットまでに起きる、システム内におけるデータ処理プロセス(ユーザーインターフェースを除く)