Mi preoccupo di essere troppo preoccupato per gli odori del codice. Ho passato gli ultimi due giorni a procrastinare i dettagli di implementazione e come avrei rifiutato attivamente di usare l'approccio suggerito.
Abbiamo uno scenario in cui "estraiamo" ordini e ogni ordine può essere "cancellato" , "ricreato" o "ignorato"
Il lead tecnologico suggeriva di avere un campo di database con i valori di "A", "D" o "I" - letteralmente.
e il codice base faremmo anche qualcosa di simile:
if(db.field == "A")
{
//Add Duplicate
}
else if (db.field == "D")
{
//Delete and Re-create
}
else
{
//Must be ignore, so don't insert
}
Ora so che funzionerebbe, ma nel grande schema di cose questo è in un metodo che fa un sacco di mappatura e inserimento dei modelli.
Ho cercato di sottolineare l'importanza di NON fare confronti su valori stringa hardcoded (e anche sull'idea di enumerazione). Ai miei occhi è contro le best practice SQL, ed è un codice "puzzolente".
Questo è molto imbarazzante per il fatto che stiamo discutendo di una funzionalità tanto piccola quando il nostro effettivo codice base e i nostri sistemi sono davvero impressionanti: sarebbe meglio discutere su problemi più grandi, piuttosto che su nulla.
Quindi, se posso chiedere, come gestiresti questa situazione? È davvero un codice "puzzolente" o sono troppo polemico?
Modifica //
Un piccolo chiarimento, non ho passato gli ultimi due giorni a non lavorare, questo era in concomitanza con altri lavori.