Mon équipe développe une application financière basée sur le WEB et il y a eu une petite dispute avec un collègue pour savoir où garder les calculs - purement en back-end ou en garder aussi en front-end?
Brève explication: nous utilisons Java (ZK, Spring) pour le front-end et Progress 4gl pour le back-end. Les calculs qui impliquent des mathématiques et des données hardcore de la base de données sont conservés en back-end, donc je ne parle pas d'eux. Je parle de la situation où l'utilisateur entre la valeur X, il est ensuite ajouté à la valeur Y (affichée à l'écran) et le résultat est affiché dans le champ Z. Opérations jQuery-ish pures et simples, je veux dire.
Alors, quelle serait la meilleure pratique ici:
1) Ajouter des valeurs avec JavaScript qui évite d'aller au back-end et au back puis les valider au back-end "on save"?
2) Gardez toute la logique métier au même endroit - apportez donc les valeurs au back-end et faites les calculs là-bas?
3) Faites les calculs dans le front-end; puis envoyer des données à l'arrière-plan, les valider là, faire les calculs à nouveau et que si les résultats sont valides et égaux, les afficher à l'utilisateur?
4) Autre chose?
Remarque: Nous effectuons une validation de base en Java, mais la plupart d'entre elles sont toujours dans le back-end comme toutes les autres logiques métier.
Augmentation des données qui seraient envoyés en recalculant tout dans un back-end ne serait pas un problème (petite taille XML, les serveurs et la bande passante résisteraient l'augmentation du montant des opérations effectuées par les utilisateurs).