---
# System prepended metadata

title: 2021-04-27 Pair-A v2 定例
tags: [Pair-A v2]

---

# 2021-04-27 Pair-A v2 定例

## 疑問
### 粟田
#### プライマリーキーを更新することの是非
個人的にはしない方が良いのでは派
プライマリーキーは識別以外の役目を果たすべきではないというのが自分の考えなので、更新が必要=値自体に意味があるのでは？と思う

- 中間テーブル的なもの（外部キーと外部キーだけしかない）とかなら複合PKで良いのでは
- PK自体を作らない（ユニークだけ設定する）

#### 抽象クラスのテストの書き方
テストしたい抽象クラスを継承したテスト用の実装クラスを作ってそれに対してテストする
（abstractなメソッドではなく、実際の処理）

#### ログ出力の責務を負うのはどのレイヤーか
今はコントローラーまで例外を戻してコントローラーが一括でログを書くようにしている
（例）
ドメインオブジェクト作成時にエラー発生→アプリケーション層で例外を詰め替えて再Throw→コントローラー層でキャッチしてログを書く

ただ、そもそもログを書くのは例外が発生したレイヤーの役目なのでは？と思い始めてきた

#### カスタムエラークラスでスタックトレースを保持したい場合どうするのか
コードを見てもらう。ただし、そもそも上記の場合に各レイヤーでログを書くならスタックトレースを保持する必要ないかも、、？

#### JestのtoBeInstanceOfがうまく動かない
コードを見てもらう。何か対処方法があるか。

#### オブジェクトの生成元を制限したい
例えば、リポジトリの引数に渡すパラメータをドメインオブジェクトそのものではなく、保存用のオブジェクトとした場合に、この保存用オブジェクトを生成できるのは対象となるドメインオブジェクトのみとしたい。

#### インデックスシグネチャって何者？
概要はちょっとだけ理解したが、anyで定義する以外無理なのか？unknownはダメだった。
そもそも型安全から外れるような気もするので、あまり使わない方がいい？

### 玄徳

#### nameとかemailってクラスにしたほうがいい？

空文字の設定を弾くくらいだったら別にクラスにするほどでもないかなと思うが、どうなのでしょうか

#### value objectって必ずequalメソッド用意したほうがいい？

比較するシチュエーションなさそうだったら用意しなくてもいいと思うのだけれども

### 永井



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