Il mio team sta sviluppando un'applicazione di finanziamento basata sul WEB e c'era un po 'di discussione con un collega in cui mantenere i calcoli - puramente nel back-end o anche nel front-end?
Breve spiegazione: Stiamo usando Java (ZK, Spring) per front-end e Progress 4gl per back-end. Calcoli che coinvolgono matematica e ampli hardcore i dati dal database sono tenuti nel back-end, quindi non sto parlando di loro. Sto parlando della situazione in cui l'utente inserisce il valore X, viene quindi aggiunto al valore Y (mostrato nella schermata) e il risultato viene visualizzato nel campo Z. Operazioni jQuery-ish pure e semplici, intendo.
Quindi quale sarebbe la migliore pratica qui:
1) Aggiungi valori con JavaScript che salva dal back-end e viceversa e poi li convalida sul back-end "in salvataggio"?
2) Mantieni tutte le logiche di business nello stesso posto - quindi porta i valori al back-end e fai i calcoli lì?
3) Effettua i calcoli nel front-end; quindi inviare i dati al back-end, convalidarli, 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 di esse è ancora nel back-end come tutte le altre logiche di business.
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 sarebbero in grado di sopportare la maggiore quantità di operazioni eseguite dagli utenti).