当前位置:  开发笔记 > 编程语言 > 正文

验证逻辑应该在哪里实施?

如何解决《验证逻辑应该在哪里实施?》经验,为你挑选了1个好方法。

在开发我的接口(契约)及其具体实现时,无论是数据模型还是存储库,我发现自己都在质疑验证逻辑应该去哪里.我的一部分(往往会胜出)说类本身应该负责它自己的验证(字符串最大长度,日期缓冲区等),但我的另一部分说这应该移到存储库,因为依赖在持久性存储库中,这些值可能会根据您的存储库实现更改.

我认为有一些验证必须在类级别完成,并认为它应该保持在一起,即使存储库没有改变也不会改变,这就是为什么我倾向于将它保留在类中.

我只是在进行UI验证,但这绝不够,因为可以绕过大部分UI验证.

好奇人们的想法和背后的推理.



1> Adam Davis..:

验证逻辑应该在哪里实施?

到处.

您应该在UI级别进行验证,以便用户获得即时,有用的反馈(即,填写一个webform,旁边有javascript说,"密码太短",所以你不会不必要地去服务器)

您应该从用户界面验证主软件中的任何输入.永远不要相信用户界面,特别是在大型项目或网站上 - 它们可能被绕过,或者它们可能由不同的团队开发.

您应该验证函数/方法/类的输入.这些具有与项目要求无关的固有限制(除了能够管理所需的输入范围之外).这里的想法是鼓励安全的代码重用.上课,你知道如果你超出它的参数就会失败 - 它会告诉你它是否会这样做.

还有许多其他领域需要进行验证(DB,备份/恢复,辅助通信渠道等)

这可能看起来像很多工作或额外的开销,但实际情况是有充分的理由重新验证链中的所有内容,其中最少的是在它们成为问题之前捕获错误.

-亚当

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有