gpt4 book ai didi

validation - 验证逻辑应该在哪里实现?

转载 作者:行者123 更新时间:2023-12-04 06:51:41 25 4
gpt4 key购买 nike

在开发我的接口(interface)(契约(Contract))和它们的具体实现时,包括数据模型和存储库,我发现自己质疑验证逻辑应该去哪里。我的一部分(倾向于胜出)说类本身应该负责它自己的验证(字符串最大长度,日期缓冲区等),但我的另一部分说这应该移出到存储库,因为取决于在持久存储上,这些值可能会根据您的存储库实现而改变。

我认为必须在类级别进行一些验证,并且认为它可能应该保持在一起并且即使存储库进行更改也不要更改,这就是为什么我倾向于将其保留在类中。

我只想进行 UI 验证,但这还远远不够,因为可以绕过大部分 UI 验证。

好奇人们的想法及其背后的原因。

最佳答案

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

到处。

  • 您应该在 UI 级别进行验证,以便用户获得即时、有用的反馈(即,填写网络表单并在其旁边显示 javascript,“密码太短”,这样您就不会不必要地访问服务器)
  • 您应该验证从用户界面到主软件的任何输入。永远不要相信用户界面,尤其是在大型项目或网站上——它们可能会被绕过,或者它们可能由不同的团队开发。
  • 您应该验证函数/方法/类的输入。这些具有与项目要求无关的固有限制(除了能够管理所需输入的范围)。这里的想法是鼓励安全的代码重用。上一个类,你知道如果你超出了它的参数,它就会失败——如果它这样做了,它会告诉你。
  • 还有许多其他领域需要进行验证(数据库、备份/恢复、辅助通信 channel 等)

  • 看起来工作量很大,或者额外的开销,但现实是有充分的理由重新验证链上的所有内容,其中最不重要的是在它们成为问题之前捕获错误。

    -亚当

    关于validation - 验证逻辑应该在哪里实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/684468/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com