example grails

example - ¿No deberían las llamadas Grails GORM estar en el servicio y no en la capa de controlador?



grails html (2)

Estamos creando métodos estáticos en la clase de dominio para encapsular consultas. El servicio se usa solo para operaciones transaccionales o consultas muy complejas con múltiples dominios de interacción. Los controladores simplemente llaman a dominios o métodos de servicios.

Estoy tratando de decidir, de acuerdo con las mejores prácticas de Grails y los patrones de MVC, cuándo es el momento adecuado para presentar un servicio y no mantener los controladores de engorde. Encuentro algo conflictivo, lo que he leído sobre las mejores prácticas y lo que parece ser una práctica común, por lo que me encantaría escuchar lo que otros piensan sobre esto.

Con las llamadas a GORM en mente, hubiera esperado que todo lo relacionado con GORM realmente entrara en un servicio. Aunque no practico esto yo mismo, especialmente cuando escribo métodos de control muy básicos como show que simplemente realizan un get() en una clase de dominio y luego muestran una vista para mostrar los detalles del objeto recuperado.

Sin embargo, después de seguir libros como ''Código limpio'' y libros similares, el código bien mantenido debe ser coherente y los métodos idealmente deberían realizar solo una tarea. Entonces, en el mundo perfecto, ¿el método show en un controlador sería responsable solo de determinar el objeto a mostrar antes de renderizar una vista? La recuperación de la base de datos podría ir a un método en la base de datos cuya única tarea es recuperar desde el DB y lanzar una excepción si no se encuentra, etc.

Pero sí, esto parece algo excesivo.

Así que, dando un paso más, los métodos create() o update() . De nuevo, actualmente el código generado de Grails lo coloca todo en el controlador, sin uso de ningún servicio.

Entonces, ¿cuándo sería el punto recomendado que necesitamos usar un servicio? Es solo cuando algo transaccional debe tener lugar, por ejemplo, en una llamada a create() , también podemos escribir un registro en un archivo de registro para mantener un registro de auditoría de tipo. Sin duda, esto garantiza un servicio?

Me encantaría escuchar lo que otros piensan que es el momento correcto para presentar los servicios, imagino que difiere mucho de persona a persona.