Estou fazendo um curso intermediário de estruturas de dados como pré-requisito para ingressar no programa CS MS em uma universidade da qual todos os EUA já ouviram falar. Uma linha de código escrita em classe chamou minha atenção:
if (a > 33 | b++ < 54) {...}
Isso não passaria em uma revisão de código no meu local de trabalho. Se você escreveu um código como esse em uma entrevista, isso seria um golpe significativo contra você. (Além de ser condicional com efeitos colaterais, é inteligente às custas da clareza.)
Na verdade, nunca vi um condicional com efeitos colaterais, e o Google também não aparece muito. Outro aluno ficou para trás depois da aula para perguntar sobre isso também, então não sou o único que achou isso estranho. Mas o professor foi bastante inflexível quanto ao fato de ser um código aceitável e que ele escreveria algo assim no trabalho. (O trabalho dele no FT é como SWE principal em uma empresa que você já ouviu falar.)
Não consigo imaginar um mundo em que essa linha de código seja aceitável, muito menos desejável. Estou errado? Isso está bom? E o caso mais geral: condicionais com efeitos colaterais? Eles estão sempre bem?