Na Antywebie odnalazłem wpis o ledwie odkrytym babolu w Facebooku. Grzegorz Marczak pisze o jego objawach, które pozwalają na podejrzenie chatu innej osoby. Na załączonym do wpisu video widać jednak że nie chodziło tylko o chat. Po zastanowieniu się, przyczyna błędu mogła być wyjątkowo trywialna… a skutki opłakane.
Otóż, na rzeczonym wideo widać, jak użytkownik wybiera opcję “Zobacz, jak wygląda Twój profil widziany przez innych” i faktycznie, widzi profil “oczami” wybranego użytkownika, a dodatkowo… widzi zminimalizowany chat tegoż użytkownika i – jak się zdaje – jego zaproszenia do znajomych (w 0:28 nie ma na górnej belce powiadomień, a w 0:45, po zmianie użytkownika – są).
Cóż, widziałem podobnego rodzaju objawy wiele razy, na szczęście nie zdarzyło nam się wypuścić ich do klienta a co dopiero puścić live. Najczęściej przyczyną był błąd tyleż durnowaty, co, jak widać, brzemienny w skutki.
Otóż, wystarczy że programista w warunku sprawdzania czy ID profilu jest zgodne z jakąś wartością, pomyli się i zastosuje instrukcję przypisania. Czyli (w wielu językach programowania) zamiast a==b napisze a=b.
Albo, trzymając się zasad DRY, użyje tego samego kawałka kodu do pokazywania “podglądu” jak i “prawdziwego widoku” profilu (co jest w zasadzie ze wszech miar słuszne), a nie wprowadzi warunków odróżniających, który widok właśnie oglądamy – “podgląd”, czy “prawdziwy”.
I w opisanym przypadku widać wyraźnie, jaką czkawką może odbić się albo chwila nieuwagi, albo nieumiejętne i zbyt sztywne trzymanie się “dobrych praktyk”.
A na koniec jeszcze jeden trywialny błąd ze stajni FB – w “Happy Aquarium” na dole wyświetlani są znajomi, którzy też posiadają swoje akwaria. I jeśli pierwszy znajomy licząc od lewej ma swoje zdjęcie, a następni nie, to zdjęcie to będzie się powtarzać u wszystkich kolejnych znajomych. Czym to pachnie? Ano, prostym niewyczyszczeniem zmiennej w pętli, czyli błędem tak samo durnowatym jak napisanie “=” zamiast “==”

