Mi sono imbattuto in quanto segue in un programma che ho rilevato da un altro sviluppatore:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
Credo che questo codice sia ridondante e brutto, quindi l'ho modificato in quello che pensavo fosse un semplice compito booleano basato su un confronto:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
Dopo aver visto ciò, qualcuno che ha revisionato il mio codice ha commentato che sebbene il mio cambiamento sia funzionalmente corretto, potrebbe confondere qualcun altro a guardarlo. Crede che l'uso di un operatore ternario renda questo compito più chiaro, mentre non mi piace l'aggiunta di un codice ridondante:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
Il suo ragionamento è che fare qualcosa nel modo più conciso non vale la pena, se fa sì che un altro sviluppatore debba fermarsi e risolvere esattamente ciò che hai fatto.
La vera domanda qui è quale di questi tre metodi di assegnazione di un valore al% booleano% co_de è il più chiaro e il più mantenibile?