GrailsのベストプラクティスとMVCパターンによれば、いつサービスを導入し、肥満コントローラを保持しないようにするべきなのかを判断しようとしています。私はそれがやや矛盾していること、ベストプラクティスについて読んだこと、そして一般的なプラクティスであると思われるものを見つけました。GrailsのGORM呼び出しはコントローラ層ではなくサービス内にあるべきですか?
GORMを念頭に置いて、私はGORMと何かが本当にサービスに入るはずだと思っていました。私はこれを練習しませんが、具体的にはshow
のような非常に基本的なコントローラーメソッドを作成し、ドメインクラスでget()
を実行してから、検索したオブジェクトの詳細を表示するビューをレンダリングするときは、
しかし、「クリーンコード」やそれに類する本のような本を読んだ後は、よく整備されたコードをまとめるべきであり、メソッドは理想的には単一のタスクしか実行してはいけません。したがって、完璧な世界では、コントローラ内のshowメソッドは、ビューをレンダリングする前に表示するオブジェクトを決定する責任がありますか?データベースからの検索は、DBから取り出して例外がスローされるなどの唯一のタスクであるデータベース内のメソッドに入る可能性があります。
はい、これは多少過度のようです。
手順をもう少し進んで、create()
またはupdate()
の方法を使用してください。ここでも、Grailsの生成コードはすべてをコントローラに入れ、サービスを全く使用しません。
したがって、サービスを利用する必要があるのはいつですか?たとえば、create()
コールで何らかのトランザクションを実行する必要がある場合のみ、ログファイルにレコードを書き込んで、並べ替えの監査ログを保持することもできます。確かにこれはサービスを保証しますか?
私は、他の人がサービスを導入する正しい時期であると感じていることを聞きたいのですが、人と人が大きく異なると思います。
入力ありがとうございました – Dave
問題ありません;)助けて欲しい –