Mi equipo está desarrollando una aplicación de financiamiento basada en WEB y hubo una pequeña discusión con un colega sobre dónde guardar los cálculos, ¿solo en el back-end o también algunos en el front-end?
Breve explicación: Estamos utilizando Java (ZK, Spring) para front-end y Progress 4gl para back-end. Cálculos que involucran algunas matemáticas incondicionales & los datos de la base de datos se guardan en el back-end, así que no estoy hablando de ellos. Estoy hablando de la situación en la que el usuario ingresa el valor X, luego se agrega al valor Y (mostrado en la pantalla) y el resultado se muestra en el campo Z. Quiero decir, operaciones puras y simples de jQuery-ish.
Entonces, ¿cuál sería la mejor práctica aquí?
1) Agregue valores con JavaScript que evite ir al back-end y al back-end y luego valídelos en el back-end "on save"?
2) Mantenga toda la lógica de negocios en el mismo lugar; por lo tanto, lleve los valores al back-end y haga los cálculos allí.
3) Haz los cálculos en el front-end; luego envíe los datos al back-end, valídelos allí, haga los cálculos nuevamente y solo si los resultados son válidos e iguales, muéstrelos al usuario?
4) ¿Algo más?
Nota: hacemos una validación básica en Java, pero la mayor parte todavía está en el back-end como toda la lógica empresarial.
El aumento de los datos que se enviarían al recalcular todo en un back-end no sería un problema (pequeño tamaño XML; los servidores y el ancho de banda soportarán la mayor cantidad de operaciones realizadas por los usuarios).