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 69 C++ код мысалдарын талдағаннан кейін зерттеушілер ең танымал ұсыныстар тізіміне енгізілген 0.09 мысалда (бұл 2859%) елеулі осалдықтарды анықтады. Содан кейін GitHub-та осы кодтың бар-жоғын талдап, StackOverflow-тан көшірілген осал код XNUMX жобада бар екені анықталды.

Ақпарат көзі: opennet.ru

пікір қалдыру