Open2

コードの設計で迷ったことを書く

YHYH

作成・更新・削除はサービス層 → リポジトリ層の流れの中のサービス層でモデルに変換しているが、

SELECTはリポジトリ層 → サービス層でのリポジトリ層でモデルに変換している。

これは適切なのか?

作成・更新・削除の場合にサービス層でモデルに変換している理由はリポジトリ層に処理が進んだ際に、DBに用にさらに変換が掛かるためサービスで行なっている。

対してSELECT時には特にDBから来た値をモデルに変換するだけのため

YHYH

こう考えるとSELECTの時はリポジトリで変換しないで、サービスでモデルに変換しても良いのでは?
取得したものをただ返却する。

DBに関する変換処理のみをリポジトリ層で行う。
ビジネスロジックするモデルへ変換はサービス層で行う。

この棲み分けで行こう!