Моя команда розробляє додаток для фінансування на веб-сайті, і з колегою було чимало суперечок, де зберегти розрахунки - суто в бек-енді чи тримати їх і в передній частині?
Коротке пояснення: ми використовуємо Java (ZK, Spring) для фронтального і Progress 4gl для бек-енд. Розрахунки, що передбачають деяку жорстку математику та дані з бази даних, зберігаються в бек-енді, тому я не кажу про них. Я говорю про ситуацію, коли користувач вводить значення X, воно додається до значення Y (показане на екрані), а результат відображається в полі Z. Чисті і прості операції jQuery-ish, я маю на увазі.
Тож, що було б найкращою практикою тут:
1) Додайте значення за допомогою JavaScript, що дозволяє економити від переходу до бек-енду і назад, а потім перевіряє їх на задній частині "при збереженні"?
2) Тримайте всю бізнес-логіку на одному місці - отже, виведіть ці значення в бек-енд і зробіть там обчислення?
3) Робіть обчислення в передній частині; потім відправте дані в бек-енд, підтвердіть їх там, зробіть обчислення знову і лише якщо результати дійсні і рівні, покажіть їх користувачеві?
4) Щось ще?
Примітка. Ми виконуємо деякі основні перевірки на Java, але більшість із них все ще знаходиться в бек-енді, як і вся інша бізнес-логіка.
Збільшення даних, які будуть надіслані шляхом перерахунку всього в задньому плані, не буде проблемою (невеликий розмір XML; сервери та пропускна здатність витримують збільшений обсяг операцій, що виконуються користувачами).