はじめに
下書きが多すぎて、下書きにストックできなかったので投稿しただけ。
どうもモデルがドメインしてないのにドメイン的に扱われていたりすることがあり、もやっとしてるので、雑にメモしておこうという意図。
ちょっとやだなという事例
- ドメインから分けるべき処理がモデルの中の種別で管理されているとifの分岐があっちこっちに発生して死ぬ。
多分、汎用的なロール等のカテゴライズができないようなものや、出来たとしても例外が含まれるものはモデルとして分けておいた方がいい。各所であなた何タイプ?と聞くことになって、種類が増えるごとに辛みが増す。
- ModelをORMとして使っており、Modelの追加で拡張していくと、責任の範囲が謎になって死ぬ
Domain = ModelでORMしててRDB使ってる場合、問題ないのは最初だけで、後々苦しい気がする。
テーブルがそんなに柔軟に変更できないし、正規化するとそれに対応するモデルの責任がなんか中途半端な感じ。
なので、一個前の事例みたいな場合もテーブルを分けずにSTIで対応するほうがよさそう。