Mi sono unito alla scrittura di un'applicazione di database multifunzione di medie dimensioni come co-lead. Attualmente ha circa 150 tabelle (e in crescita) e una funzionalità generale che puoi immaginare come ERP molto piccolo.
In molti punti del codice, le funzionalità che normalmente appartengono a procedure (intendo funzioni senza valore di ritorno) come DeleteAttachment
o SaveRecord
sono messe in funzione con il valore di ritorno che riporta il loro stato di uscita in stringa. Restituiscono "OK"
in caso di successo o messaggi come "Deletion failed because ......."
o "Insufficient privileges for ......."
.
Alla fine, spesso all'utente finale viene presentato il messaggio che hanno fornito. Da un lato, questo è un meccanismo efficace di tracciamento di potenziali problemi. D'altra parte, non sono sicuro se dovrei incoraggiare questo approccio di scrivere la logica aziendale interna.
Capisco che non sia un ottimo modo per inserire problemi non fatali nelle eccezioni ( EInsufficientUserPrivileges
, ERecordAlreadyExists
). Dovremmo attenerci all'attuale approccio o ce n'è un altro più adatto alle applicazioni che utilizzano molti controlli e logiche di business?