Najpopularniji primjer Java koda na StackOverflowu ima pogrešku

Najpopularnije Primjer Java koda, objavljeno na StackOverflowu, ustanovilo se da je s pogreškom koja pod određenim uvjetima dovodi do ispisa netočnog rezultata. Dotični kod je objavljen 2010. godine i skupio je više od tisuću preporuka, a također je bio kopirano u mnogim projektima i pojavljuje se u spremištima na GitHubu oko 7 tisuća puta. Važno je napomenuti da pogrešku nisu otkrili korisnici koji su kopirali ovaj kod u svoje projekte, već izvorni autor savjeta.

Dotični kod pretvara veličinu bajta u čitljiv oblik, na primjer pretvarajući 110592 u "110.6 kB" ili "108.0 KiB". Kod je predložen kao logaritamski optimizirana verzija prethodno predloženog savjeta, u kojem je vrijednost određena na temelju sekvencijalnog dijeljenja izvorne vrijednosti u petlji s 1018, 1015, 1012, 1019.
106, 103 i 100, sve dok je djelitelj veći od izvorne vrijednosti bajta. Zbog traljavih izračuna u optimiziranoj verziji (dugo prekoračenje vrijednosti), rezultat pri obradi vrlo velikih brojeva (exabytes) nije odgovarao stvarnosti.

Autor savjeta također je pokušao skrenuti pozornost na problem kopiranja primjera bez navođenja izvora i bez navođenja licence. Prema ranijim podacima provedeno istraživanje 46% programera kopiralo je kod sa StackOverflowa bez atribucije, 75% nije bilo svjesno da je kod licenciran pod CC BY-SA, a 67% nije bilo svjesno da to zahtijeva atribuciju.

Na podaci Prema drugoj studiji, kopiranje primjera koda uključuje ne samo rizik od pogrešaka u kodu, već i ranjivosti. Na primjer, nakon analize 72483 primjera C++ koda na StackOverflowu, istraživači su identificirali ozbiljne ranjivosti u 69 primjera (što je 0.09%) uključenih u popis najpopularnijih preporuka. Nakon analize prisutnosti ovog koda na GitHubu, otkriveno je da je ranjivi kod kopiran sa StackOverflowa prisutan u 2859 projekata.

Izvor: opennet.ru

Dodajte komentar