Encontré el siguiente condicional en un programa que he adquirido de otro desarrollador:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
Creo que este código es redundante y feo, así que lo cambié a lo que pensé que era una asignación booleana simple basada en una comparación:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
Al ver esto, alguien revisando mi código comentó que aunque mi cambio es funcionalmente correcto, podría confundir a alguien más que lo mira. Él cree que el uso de un operador ternario hace que esta asignación sea más clara, mientras que no me gusta agregar más código redundante:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
Su razonamiento es que hacer algo de la manera más concisa no vale la pena, si hace que otro desarrollador tenga que detenerse y descifrar exactamente lo que has hecho.
La verdadera pregunta aquí es cuál de estos tres métodos para asignar un valor al booleano obj.NeedsChange
es el más claro y el más fácil de mantener.