Me deparei com o seguinte condicional em um programa que substituí de outro desenvolvedor:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
Eu acredito que esse código é redundante e feio, então mudei para o que eu pensava ser uma atribuição booleana simples com base em uma comparação:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
Ao ver isso, alguém revisando meu código comentou que, embora minha alteração esteja funcionalmente correta, ela pode confundir alguém que está olhando para ela. Ele acredita que o uso de um operador ternário torna essa atribuição mais clara, enquanto eu não gosto da adição de código mais redundante:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
Seu raciocínio é que fazer algo da maneira mais concisa não vale a pena, se faz com que outro desenvolvedor pare e decifre exatamente o que você fez.
A verdadeira questão aqui é qual desses três métodos de atribuir um valor ao booleano obj.NeedsChange
é o mais claro e o mais sustentável?