問題
NGワードはカスタムバリデーションなのに
なぜ、
削除パスワードチェックはなぜServiceなの?
↓
判断基準 = 投稿によって判定結果が変わるか?
比較表
| NGワード | 削除パスワード | |
|---|---|---|
| ① 投稿によって結果が変わる? | ❌ 変わらない | ✅ 変わる |
| ② 判定は値単体に近い? | ✅ | ❌ |
| ③ ユースケース依存? | ❌ | ✅ |
| ④ 書く場所 | Request | Service |
解説:
① 投稿によって結果が変わる?
NGワード
「バカ」という文字は
どの投稿でもNG。
→ 判定は常に同じ。
削除パスワード
投稿Aの正解は「1234」
投稿Bの正解は「9999」
→ 投稿ごとに結果が変わる。
② 判定は値単体に近い?
NGワード
入力値 vs NGワード一覧
→ ほぼ「値のチェック」。
削除パスワード
入力値 vs その投稿のpassword
→ 投稿という対象が必要。
値だけでは判断できない。
③ ユースケース依存?
NGワード
投稿でもコメントでも
同じルールで使える。
→ 操作に依存していない。
削除パスワード
「削除」という操作のときだけ必要。
→ 完全にユースケース依存。
結論
▪️値の正しさをチェックする → Request(バリデーション)
▪️操作していいかをチェックする → Service(ビジネスロジック)