【发布时间】:2011-02-28 20:07:17
【问题描述】:
“纵深防御”原则指出,约束应该在多个地方强制执行,这样如果一条数据绕过或漏过一层,就会被下一层捕获。一个很好的例子是在 Web 应用程序中 - 您将验证放在客户端 javascript、服务器端代码(PHP/Ruby/ASP/whatever)中,然后将这些规则放在数据库中(例如外键约束)。这样,任何通过 Javascript 验证的数据都会被服务器端捕获。任何通过服务器验证的数据都会被数据库约束捕获。
但是,这似乎违反了 DRY(不要重复自己)原则。在这里,您有三个地方重复相同的验证规则。我知道有一些方法可以生成客户端 javascript,以便它强制执行服务器端验证。我的问题是,如何整合数据库约束和服务器端代码?有什么方法可以生成代码以自动强制执行数据库约束?
【问题讨论】:
标签: validation code-generation dry