Al lavoro abbiamo un sacco di codice come questo (pseudocodice):
response form_submit(string username, string password) {
if ( username == ""
|| username.contains(invalid_chars)
|| password.length < 5
|| ...
) {
return "errors: blah blah";
} else {
try {
db("insert into users(username, password) values (?, ?)", username, password);
return "success";
}
catch (DBException e) {
return "errors: blah blah";
}
}
}
Alcuni di questi sono applicati come vincoli sul DB, altri no. Ha più senso per me imporre tutto come vincoli di DB e basta fare
response form_submit(string username, string password) {
try {
db("insert into users(username, password) values (?, ?)", username, password);
return "success";
}
catch (DBException e) {
return "errors: blah blah";
}
}
La mia opinione è ovvia qui, ma qual è la tua: questo tipo di applicazione di prova di integrità dei dati a livello di applicazione non è buona?