StackOverflow дээрх Java кодын хамгийн алдартай жишээ нь алдаатай байна

Хамгийн алдартай Java кодын жишээ, StackOverflow дээр нийтлэгдсэн, болж хувирав тодорхой нөхцөлд буруу үр дүнг гаргахад хүргэдэг алдаатай. Энэ кодыг 2010 онд нийтэлсэн бөгөөд мянга гаруй зөвлөмжийг цуглуулсан бөгөөд хуулсан олон төслүүд дээр GitHub дээр 7 мянга орчим удаа репозиторууд дээр гарч ирдэг. Алдаа нь энэ кодыг төсөлдөө хуулсан хэрэглэгчид бус харин зөвлөгөөний анхны зохиогчоос олдсон нь анхаарал татаж байна.

Тухайн код нь байт хэмжээг унших боломжтой хэлбэрт хөрвүүлсэн, жишээлбэл 110592-г "110.6 кБ" эсвэл "108.0 КБ" болгон хөрвүүлсэн. Уг кодыг өмнө нь санал болгож байсан зөвлөгөөний логарифмын оновчтой хувилбар болгон санал болгосон бөгөөд уг утгыг давталт дахь анхны утгыг 1018, 1015, 1012, 1019 гэсэн дарааллаар хуваахад үндэслэн тодорхойлсон.
Хуваагч нь анхны байт утгаас их байвал 106, 103, 100 байна. Оновчтой хувилбар дахь алдаатай тооцоолол (урт утгын хэт их) улмаас маш их тоо (экзабайт) боловсруулах үед гарсан үр дүн бодит байдалд нийцэхгүй байна.

Зөвлөгөөний зохиогч эх сурвалжийг дурдаагүй, лицензийг заагаагүй жишээг хуулбарлах асуудалд анхаарлаа хандуулахыг оролдсон. Өмнөх мэдээгээр судалгаа хийсэн Хөгжүүлэгчдийн 46% нь StackOverflow-аас кодыг хамааралгүйгээр хуулсан, 75% нь код нь CC BY-SA-ийн дагуу лицензтэй гэдгийг мэдээгүй, 67% нь үүнд хамаарал шаардлагатай гэдгийг мэдээгүй байна.

Нь өгөгдөл Өөр нэг судалгаагаар кодын жишээг хуулбарлах нь зөвхөн кодын алдааны эрсдэлээс гадна эмзэг байдлыг агуулдаг. Жишээлбэл, StackOverflow дээрх 72483 C++ кодын жишээнд дүн шинжилгээ хийсний дараа судлаачид хамгийн алдартай зөвлөмжүүдийн жагсаалтад багтсан 69 жишээнд (энэ нь 0.09%) ноцтой эмзэг байдлыг илрүүлсэн. Дараа нь GitHub дээр энэ код байгаа эсэхийг шинжилж үзээд StackOverflow-аас хуулсан эмзэг код 2859 төсөлд байгаа нь тогтоогдсон.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх