Mi sono imbattuto nel seguente condizionale 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 cambiato in quello che pensavo fosse un semplice compito booleano basato su un confronto:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
Vedendo ciò, qualcuno che ha esaminato il mio codice ha commentato che sebbene la mia modifica sia funzionalmente corretta, potrebbe confondere qualcun altro che lo sta guardando. Crede che l'uso di un operatore ternario renda più chiaro questo compito, mentre non mi piace l'aggiunta di un codice più ridondante:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
Il suo ragionamento è che fare qualcosa nel modo più conciso non ne 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 per assegnare un valore al booleano obj.NeedsChange
è il più chiaro e il più mantenibile?