EstebanRodriguezUBA / miProyectoWeb

0 stars 0 forks source link

No es responsabilidad del servicio validar parámetros #8

Open maurociancio opened 6 years ago

maurociancio commented 6 years ago

https://github.com/EstebanRodriguezUBA/miProyectoWeb/blob/master/gitHubrepositorio/proyecto/grails-app/controllers/fiuba/sii7571/miproyecto/cuenta/CuentaController.groovy

cuentaService.validar(params) Es responsabilidad del controlador validar los parámetros. Ver acá: https://docs.grails.org/latest/guide/theWebLayer.html#commandObjects

class LoginController {

def login(LoginCommand cmd) {
    if (cmd.hasErrors()) {
        redirect(action: 'loginForm')
        return
    }

    // work with the command object data
}

}

EstebanRodriguezUBA commented 6 years ago

Buenos días profesor: Entendido, modificado .

La intención era por lo investigado: "Es responsabilidad del controlador la lógica de negocio pero se implementa en el servicio". Aún tratando de comprender los límites.


La referencia la saqué de :"Manual de desarrollo web con Grails" de Nacho Brito:

"Los controladores son los responsables de recibir las solicitudes del usuario, aplicar la lógica de negocio sobre el modelo, y decidir la vista que se debe mostrar a continuación."..."Cuando digo que los componentes de la capa de control gestionan la aplicación de la " lógica de negocio" me refiero a que son responsables de que ésta se aplique, lo cual no quiere decir que debamos implementar la lógica de nuestros casos de uso en los controladores. Normalmente esta lógica estará implementada en una cuarta capa: •Capa de servicios. Contiene los componentes encargados de implementar la lógica de negocio de nuestra aplicación"

maurociancio commented 6 years ago

Si, nosotros llevamos otro enfoque. Controlador determina que ve el usuario, validación básica de parámetros. Vista: muestra los datos Servicio: coordina las entidades. Recupera objetos desde los repositorios. Delega en las entidades las transacciones. Dominio: se implementan las reglas de negocio.