gpt4 book ai didi

ruby-on-rails - 您如何保持业务规则 DRY?

转载 作者:行者123 更新时间:2023-12-04 00:51:16 26 4
gpt4 key购买 nike

在完美的应用程序中,每个业务规则只存在一次。

我在一家商店工作,该商店尽可能多地在数据库中执行业务规则。在许多情况下,为了获得更好的用户体验,我们在客户端执行相同的验证。不太DRY .成为 SPOT纯粹主义者,我讨厌这个。

另一方面,一些商店创建愚蠢的数据库(Rails 社区倾向于这个方向)并将业务逻辑降级到一个单独的层。但即使采用这种策略,一些验证逻辑最终还是会重复客户端。

更复杂的是,我明白为什么数据库应该是 treated as a fortress所以我同意在数据库中执行/重复验证。

考虑到相互冲突的问题,尝试在一个地方执行验证并不容易——保持 DRY,让数据库成为堡垒,并提供良好的用户体验。我有 some idea for overcoming this issue ,但我想还有更好的。

我们能否以 DRY 的方式平衡这些相互矛盾的问题?

最佳答案

任何没有在他们所属的数据库中强制执行所需业务规则的人都会拥有不良数据,就这么简单。数据完整性是数据库工作 .数据库受到比应用程序更多的源的影响,并且只在应用程序中放置所需的规则是短视的。如果您这样做,您将获得来自导入、其他应用程序连接时、临时查询以修复大量数据(认为将所有价格提高 10%)等中的错误数据。强制执行是极端愚蠢的规则只能通过应用程序。但话又说回来,我是必须修复进入设计不佳的数据库的不良数据的人,在这些数据库中,应用程序开发人员认为他们应该只在应用程序中做一些事情。

在许多情况下,数据将在应用程序使用很久之后才存在。当这种情况发生时,你也会失去规则。

关于ruby-on-rails - 您如何保持业务规则 DRY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556070/

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