Sto seguendo un corso intermedio sulle strutture di dati come prerequisito per l'ingresso nel programma CS MS in un'università di cui tutti in America hanno sentito parlare. Una riga di codice scritta in classe attirò la mia attenzione:
if (a > 33 | b++ < 54) {...}
Questo non passerebbe una revisione del codice sul mio posto di lavoro. Se hai scritto codice come questo in un'intervista, questo sarebbe uno sciopero significativo contro di te. (Oltre ad essere un condizionale con effetti collaterali, è intelligente a scapito della chiarezza.)
In realtà, non ho mai visto un condizionale con effetti collaterali e anche Google non si presenta molto. Anche un altro studente è rimasto indietro dopo le lezioni per chiederlo, quindi non sono l'unico a pensare che questo sia strano. Ma il professore era piuttosto irremovibile che questo era un codice accettabile e che avrebbe scritto qualcosa del genere al lavoro. (Il suo lavoro in FT è di SWE principale presso un'azienda di cui tutti avete sentito parlare.)
Non riesco a immaginare un mondo in cui questa linea di codice sia mai accettabile, tanto meno desiderabile. Ho sbagliato? Va bene? Che dire del caso più generale: i condizionali con effetti collaterali? Sono mai a posto?