Najpopularniji primjer Java koda na StackOverflow-u završio je s greškom

Najpopularniji primjer java kodaobjavljeno na StackOverflow, ispostavilo se sa greškom koja vodi do zaključka pod određenim uslovima netačnog rezultata. Predmetni kod je objavljen 2010. godine i akumulirao je preko hiljadu preporuka, a i jeste kopirano u mnogim projektima i nalazi se u repozitorijumima na GitHubu oko 7 hiljada puta. Važno je napomenuti da grešku nisu pronašli korisnici koji su kopirali ovaj kod u svoje projekte, već originalni autor savjeta.

Dotični kod je izvršio konverziju veličine bajta u čitljivu formu, na primjer, 110592 pretvoren u "110.6 kB" ili "108.0 KiB". Kod je predložen kao logaritamski optimizirana verzija ranijeg savjeta, u kojem je vrijednost određena na osnovu uzastopnog dijeljenja originalne vrijednosti u petlji sa 1018, 1015, 1012, 1019,
106, 103 i 100, sve dok je djelitelj veći od originalne vrijednosti u bajtovima. Zbog traljavih proračuna u optimizovanoj verziji (prelivanje dugih vrijednosti), rezultat obrade vrlo velikih brojeva (eksabajta) nije odgovarao stvarnosti.

Autor savjeta je također pokušao skrenuti pažnju na problem kopiranja primjera bez navođenja izvora i bez navođenja licence. Prema ranijem istraživanja 46% programera kopiralo je kod sa StackOverflow-a bez atribucije, 75% nije znalo da se kod distribuira pod CC BY-SA licencom, a 67% nije znalo da to implicira potrebu za atribucijom.

By dato U drugoj studiji, kopiranje primjera koda ne dovodi samo do rizika od grešaka u kodu, već i od ranjivosti. Na primjer, nakon analize 72483 primjera C++ koda na StackOverflow-u, istraživači su identifikovali ozbiljne propuste u 69 primjera (što je 0.09%) uključenih na listu najpopularnijih preporuka. Nakon analize prisustva ovog koda na GitHub-u, otkriveno je da je ranjivi kod kopiran sa StackOverflow-a prisutan u 2859 projekata.

izvor: opennet.ru

Dodajte komentar