Моя команда разрабатывает финансовое приложение на основе WEB, и с коллегой возник спор о том, как сохранить расчеты - чисто бэкэнд или некоторые из них тоже?
Краткое объяснение: Мы используем Java (ZK, Spring) для front-end и Progress 4gl для back-end. Расчеты, которые включают в себя некоторую хардкорную математику и данные из базы данных, хранятся в бэк-энде, поэтому я не говорю о них. Я говорю о ситуации, когда пользователь вводит значение X, затем оно добавляется к значению Y (показано на экране), и результат отображается в поле Z. Я имею в виду чистые и простые операции jQuery-ish.
Итак, что было бы лучшей практикой здесь:
1) Добавить значения с помощью JavaScript, который избавляет от перехода в бэкэнд и обратно, а затем проверять их в бэкэнде «при сохранении»?
2) Храните всю бизнес-логику в одном месте - поэтому перенесите значения в бэкэнд и сделайте там расчеты?
3) Делать расчеты во внешнем интерфейсе; затем отправить данные в бэкэнд, проверить их там, выполнить вычисления снова и только, если результаты верны и равны, отобразить их пользователю?
4) Что-то еще?
Примечание. Мы выполняем некоторую базовую проверку в Java, но большая ее часть все еще находится в бэк-энде, как и вся остальная бизнес-логика.
Увеличение объема данных, которые будут отправлены путем пересчета всего в бэкэнде, не будет проблемой (небольшой размер XML; серверы и пропускная способность будут выдерживать увеличение количества операций, выполняемых пользователями).