Ang pinakasikat na halimbawa ng Java code sa StackOverflow ay nauwi sa isang error

Π‘Π°ΠΌΡ‹ΠΉ популярный halimbawa ng java codenai-post sa StackOverflow, naka na may error na humahantong sa konklusyon sa ilalim ng ilang mga kundisyon ng isang hindi tamang resulta. Ang code na pinag-uusapan ay nai-post noong 2010 at nakaipon ng mahigit isang libong rekomendasyon, at naging kinopya sa maraming proyekto at matatagpuan sa mga repositoryo sa GitHub mga 7 libong beses. Kapansin-pansin na ang error ay hindi natagpuan ng mga gumagamit na kinokopya ang code na ito sa kanilang mga proyekto, ngunit sa pamamagitan ng orihinal na may-akda ng payo.

Ang code na pinag-uusapan ay nagsagawa ng pag-convert ng laki ng byte sa isang nababasang anyo, halimbawa, 110592 na na-convert sa "110.6 kB" o "108.0 KiB". Ang code ay iminungkahi bilang isang logarithm-optimized na bersyon ng naunang payo, kung saan ang halaga ay natukoy batay sa sunud-sunod na dibisyon ng orihinal na halaga sa isang loop sa pamamagitan ng 1018, 1015, 1012, 1019,
106, 103, at 100, hangga't ang divisor ay mas malaki kaysa sa orihinal na halaga sa mga byte. Dahil sa mga palpak na kalkulasyon sa na-optimize na bersyon (mahabang halaga ng overflow), ang resulta ng pagproseso ng napakalaking numero (exabytes) ay hindi tumutugma sa katotohanan.

Sinubukan din ng may-akda ng payo na bigyang pansin ang problema ng pagkopya ng mga halimbawa nang walang pagpapatungkol sa pinagmulan at nang hindi tinukoy ang lisensya. Ayon sa kanina pananaliksik 46% ng mga developer ang kinopya ang code mula sa StackOverflow nang walang attribution, 75% ang hindi alam na ang code ay ipinamamahagi sa ilalim ng CC BY-SA na lisensya, at 67% ang hindi alam na ito ay nagpapahiwatig ng pangangailangan para sa attribution.

Sa Ayon sa Sa isa pang pag-aaral, ang pagkopya ng mga halimbawa ng code ay hindi lamang nagpapatakbo ng panganib ng mga bug sa code, kundi pati na rin ang mga kahinaan. Halimbawa, pagkatapos suriin ang 72483 C++ na mga halimbawa ng code sa StackOverflow, natukoy ng mga mananaliksik ang mga seryosong kahinaan sa 69 na halimbawa (na 0.09%) na kasama sa listahan ng mga pinakasikat na rekomendasyon. Matapos suriin ang pagkakaroon ng code na ito sa GitHub, nahayag na ang mahinang code na kinopya mula sa StackOverflow ay naroroon sa 2859 na mga proyekto.

Pinagmulan: opennet.ru

Magdagdag ng komento