---
# System prepended metadata

title: 2021-05-26 Pair-A v2 定例
tags: [Pair-A v2]

---

# 2021-05-26 Pair-A v2 定例

## 疑問
### 粟田
#### optionalかnull
(props?) -> undefined 
(props | null) -> null

- 引数として受け取るものはoptionalでも良い
    - スコープがメソッド内に限定されるため
- 返り値として定義するならoptionalは良くない
    - いろいろなところにundefinedが現れる
- 引数として受け取るならnull
    - どこかで勝手にundefinedが生まれることはない
    - なにも渡さない場合は明示的にnullを渡す

#### ユースケースとドメインサービスの書き分け
- ユースケースは薄い方が良い
- ドメインの整合性を保つならドメインサービス
- 概念として名前が付けられるかどうかを考える
    - ユースケースと同じ名前は概念として名前はないと判定する
- ではユースケースが保つべきものとは？

今回のケースだと、課題グループを削除した時に課題と参加者の課題割り当てを削除する
ユースケースにつらつらとそれぞれの削除処理を書くか、ドメインサービスとして切り出してユースケースはそのドメインサービスを呼ぶに止めるか。

#### どうしてもテストがアサーションルーレット的な書き方になってしまう
- 課題グループを削除するところ
- どうやって書く？コードを見てもらう
- 複数のインスタンスをモックして、複数のインスタンスに対してメソッドが呼ばれたことを確認するようなケース

### 玄徳

### 永井

###### Tags: `Pair-A v2`