在Spring中编码的web应用程序后端对执行密集计算的“业务引擎”进行远程过程调用。
这些密集的计算有一个高错误率,主要是因为后端对引擎的错误请求和/或DB中的坏/不足数据。
因此,有必要向用户提供可转换为消息的错误代码,以帮助识别问题。
---------- ----------- ----------
| | | | | |
| USER | ----> | BACKEND | -RPC-> | ENGINE |
| | | | | |
---------- ----------- ----------
| |
| |
----- -----
Config | | Business | |
DB | | DB | |
----- -----我认为,在调用引擎之前,应该先进行验证,以便快速失败,避免等待在发送、根据负载排队、处理并返回到后端后不可避免地失败的响应。
问题:验证应该发生在: A)后端还是B)业务引擎中?
奖励问题:如果答案是B),业务引擎应该返回错误代码并让后端处理转换,还是也实现消息的i18n?
其他信息:
欢迎支持/反对任何办法的意见和/或替代办法。谢谢。
发布于 2015-05-11 00:25:35
验证应该发生在: A)后端还是B)业务引擎?
是。
在多个地方进行验证。对客户端进行验证以获得快速反馈。在控制器中验证安全性,在存储库中验证数据完整性。你知道JSR验证组,对吧?
业务引擎应该返回错误代码并让后端处理转换,还是也实现消息的i18n?
坚持JSR验证开始。这很不错。当存在验证错误时,它会抛出异常。将错误消息保存在属性文件中。
发布于 2015-05-10 22:50:12
在我看来,我不希望我的引擎对错误的请求执行计算。我看不出这有什么价值。因此,您的验证应该始终在后端执行,然后只应将筛选的请求发送到您的引擎。您还必须改进您的web应用程序,以便您从UI获得的不良请求的数量也应该减少。因此,在UI控制器本身中设置尽可能多的逻辑,以便以更好的方式过滤到后端的请求。
https://stackoverflow.com/questions/30157395
复制相似问题