Il mio team sta sviluppando un'applicazione finanziaria basata sul WEB e c'era un po 'di discussione con un collega su dove mantenere i calcoli - puramente nel back-end o anche nel front-end?
Breve spiegazione: stiamo usando Java (ZK, Spring) per il front-end e Progress 4gl per il back-end. I calcoli che coinvolgono alcuni dati matematici e dati dal database sono conservati nel back-end, quindi non ne sto parlando. Sto parlando della situazione in cui l'utente immette il valore X, quindi viene aggiunto al valore Y (mostrato nella schermata) e il risultato viene mostrato nel campo Z. Operazioni jQuery pure e semplici, intendo.
Quindi quale sarebbe la migliore pratica qui:
1) Aggiungere valori con JavaScript che salvi dall'andare al back-end e viceversa e quindi convalidarli nel back-end "al salvataggio"?
2) Mantenere tutte le logiche aziendali nello stesso posto - quindi portare i valori al back-end e fare i calcoli lì?
3) Eseguire i calcoli nel front-end; quindi inviare i dati al back-end, convalidarli lì, eseguire nuovamente i calcoli e solo se i risultati sono validi e uguali, mostrarli all'utente?
4) Qualcos'altro?
Nota: eseguiamo alcune convalide di base in Java ma la maggior parte è ancora nel back-end come tutte le altre logiche aziendali.
L'aumento dei dati che verrebbero inviati ricalcolando tutto in un back-end non sarebbe un problema (dimensioni XML ridotte; server e larghezza di banda resisterebbero alla maggiore quantità di operazioni eseguite dagli utenti).