我的团队正在开发一个基于WEB的金融应用程序,并且与一位同事有过一点争论,那就是把计算保存在哪里--纯后端,还是将一些保存在前端?
简要说明:我们在前端使用Java (ZK,Spring),后端使用Advancement4GL。涉及到一些核心数学和数据库数据的计算被保存在后端,所以我不是在谈论它们。我指的是用户输入值X的情况,然后将其添加到值Y(显示在屏幕中),结果显示在字段Z. Pure和简单的jQuery-ish操作中。
那么,这里的最佳做法是什么:
1)使用JavaScript添加值,以保存从后端和后端保存的值,然后在后端"on“验证它们?
2)将所有业务逻辑保持在同一个位置--因此将值带到后端并进行计算吗?
3)在前端进行计算;然后将数据发送到后端,在那里验证它们,再次进行计算,只有在结果有效和相等的情况下,才能将它们显示给用户?
4)还有什么别的吗?
注意:我们在Java中进行了一些基本的验证,但与所有其他业务逻辑一样,大多数验证仍然处于后端。
通过重新计算后端中的所有内容而发送的数据量的增加不会成为问题( XML大小小,服务器和带宽将承受用户增加的操作量)。
发布于 2014-08-04 11:46:15
像往常一样,这样的决定涉及不同目标之间的权衡,其中有些目标彼此冲突。
从表面上看,这听起来好像所有事情都必须由服务器端来完成,但情况并不总是如此。如果您可以轻松地维护重复的代码(例如,通过从服务器端Java验证器自动生成javascript验证器),那么重复计算可能是一个很好的解决方案。如果所涉及的数据都是不重要的,例如,如果用户只能欺骗自己,而不是你,如果他们操纵值,那么服务器端验证是不必要的。如果您的响应时间被完全不同的瓶颈所支配,那么往返延迟是不可察觉的,那么UX的考虑并不是决定性的,等等。因此,您必须考虑这些压力在您的情况下有多大,并做出相应的决定。
发布于 2014-08-04 12:38:37
中进行计算
https://softwareengineering.stackexchange.com/questions/252224
复制相似问题