Biorę kurs pośrednich struktur danych jako warunek wstępny do programu CS MS na uniwersytecie, o którym wszyscy w Ameryce słyszeli. Jeden wiersz kodu, który został napisany w klasie, przykuł moją uwagę:
if (a > 33 | b++ < 54) {...}
To nie przejdzie przeglądu kodu w moim miejscu pracy. Gdybyś napisał taki kod w wywiadzie, byłby to znaczący atak przeciwko tobie. (Oprócz bycia warunkowym z efektami ubocznymi, jest sprytny kosztem przejrzystości).
W rzeczywistości nigdy nie widziałem warunku z efektami ubocznymi, a Googling też się nie pojawia. Kolejny uczeń został też po zajęciach, żeby o to zapytać, więc nie jestem jedynym, który uważał to za dziwne. Ale profesor był zdecydowanie nieugięty, że był to akceptowalny kod i że napisałby coś takiego w pracy. (Jego praca FT jest jako główny SWE w firmie, o której wszyscy słyszeliście.)
Nie wyobrażam sobie świata, w którym ten wiersz kodu byłby kiedykolwiek akceptowalny, a tym bardziej pożądany. Czy się mylę? Czy to jest ok? Co z bardziej ogólnym przypadkiem: warunki warunkowe z efektami ubocznymi? Czy to jest w porządku?