# 2021-05-05 Pair-A v2 定例 ## 疑問 ### 粟田 #### 集約ルートは必ずエンティティになるか - 値オブジェクトが集約ルートになることはない #### ファクトリで行うバリデーションとドメインオブジェクトで行うバリデーション - チーム名の重複チェック => ファクトリ - チーム名のフォーマット => ドメインオブジェクト - ドメインオブジェクトに書けるやつはドメインオブジェクトに - ファクトリから作ることを分からせるにはどうする #### オブジェクト生成時に別集約のエンティティIDが必要な場合、引数で受け取るのはオブジェクトかIDのみか - オブジェクトを渡す - データの整合性が強い - オブジェクトを作るコスト - オブジェクトを勝手に操作される可能性がある - IDを渡す - コストが低い - 変なIDが渡される可能性がある - ちゃんとしたデータかどうかはドメインサービスでチェックすれば良いのでは #### 永続化したものを再構築する時はバリデーションをしないべきか - 仕様変更があればデータも合わせて直すべき - しなくて良いのでは問題 ### 玄徳 ### 永井 - DBにある設定値をアプリ側でどう定義すべきか - アプリ側かDB側のどちらかに置くべき - どちらにおくべきか - 必要に応じてどちらに置くか考える - どういう基準で考えるか - DBに置く - ユーザーが触る場合 - アプリに定義する - 都道府県のように変更がない場合 ```typescript= export const ProgressStatusEnum = { complete: '完了', readyForReview: 'レビュー待ち', notStarted: '未着手', } as const; type progressStatusType = typeof ProgressStatusEnum[keyof typeof ProgressStatusEnum]; ``` - コンストラクタでバリデーション処理があって、同じバリデーション処理を別メソッドでも使いたいときどうする https://github.com/ampersand-github/DDD-praha-challenge/blob/Praha_challenge_ddd_%E5%8F%82%E5%8A%A0%E8%80%85%E9%9B%86%E7%B4%84(%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%B1%A4)_%E3%81%9D%E3%81%AE2/serverSide/src/domain/participant/team/team.ts ###### Tags: `Pair-A v2`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up