私のプロジェクトには、リポジトリを操作するサービス レイヤーがあります。サービス層はコントローラーによって呼び出されます。
多くの場合、コントローラー レイヤーは、受信情報がシステムに取り込まれる前に検証できます。ただし、場合によっては、送信されたデータが有効でないためにエラーが発生することがありますが、これはサービス レイヤー内のポイントでのみ発生します。
それを念頭に置いて、ユーザー サインアップ フローを実行していると仮定しましょう。
- 重複したユーザー名は許可されていません
- ユーザー名を指定できます
- ユーザー名が指定されていない場合は、姓名から生成されます
これは、(必要に応じて) 生成し、重複するユーザー名をチェックするプロセスがサービス層で発生することを意味します。
重複が発生した場合、呼び出し元に信号を送るための最も分離された理想的な方法は何ですか (コントローラー、バックグラウンド タスク、または別のサービスであっても) - それ:
- ユーザー名フィールドに問題があります
- 該当する場合、生成されたユーザー名
理想的には、提案されたアプローチを他のサービスで発生するエラーに適用できるようにして、一貫した方法で報告し、呼び出しレイヤーでエラーを処理できるようにすることができます。