在完美的应用中,每个业务规则只存在一次.
我为在数据库中尽可能强制执行业务规则的商店工作.在许多情况下,为了实现更好的用户体验,我们在客户端执行相同的验证.不是很DRY.作为一个SPOT纯粹主义者,我讨厌这个.
另一方面,一些商店创建了愚蠢的数据库(Rails社区倾向于这个方向),并将业务逻辑放到了一个单独的层次上.但是即使这样,一些验证逻辑就会重复出现在客户端.
为了使问题进一步复杂化,我明白为什么数据库应该是treated as a fortress,所以我同意在数据库中强制/重复验证.
考虑到矛盾的问题,试图在一个地方强制验证是不容易的 – 保持DRY,保持数据库的堡垒,并提供良好的用户体验.我有some idea for overcoming this issue,但我想有更好的.
我们可以以干旱方式平衡这些矛盾的问题吗?