main-post-cover

    StackOverflow-dakı ən məşhur Java kod nümunəsi səhv imiş

    Digər
    Code-News
    06.12.2019
    Emil Nəcəfov
        StackOverflow-da qeyd edilmiş ən məşhur Java kod nümunəsi müəyyən şərtlərdə düzgün olmayan nəticələrə gətirib çxartmış səhv imiş. Sözügedən kod 2010-cu ildə dərc edilmiş və 1000-dən çox müsbət fikir əldə etmişdi. Bundan əlavə olaraq həmin kod bir çox layihələr kopyalanıb və ona GitHub repozitoriyalarından 7000 dəfədən çox rast gəlinir. Maraqlısı ondadır ki, koddakı səhvi öz layihələrinə həmin kodu kopyalayan istifadəçilər deyil kodun müəllifi aşkar edib. Bu barədə Opennet.ru saytı xəbər verib.
        Sözügedən kod baytlıq informasiyanı oxunula bilən formaya çevirirdi. Məsələn o, 110592-ni “110.6 kB”ə və ya “108.0 KiB”ə çevirirdi. Bu kod daha öncədən təqdim edilmiş məsləhətin loqarifma vasitəsilə optimizasiya edilmiş versiyasıdır. Daha öncədən təqdim edilmiş məsləhətdə böyüklük, ixtiyari mənanın ardıcıl olaraq dövrdə 10 üstü 18, 10 üstü 15, 10 üstü 12, 10 üstü 19, 10 üstü 6, 10 üstü 3 və 10 üstü 0-a bölünməsi sayəsində təyin edilirdi. Bölünmə o vaxta kimi davam edəcək ki, bölən, baytlar üzrə ixtiyari mənadan böyük olsun.
        Diqqətsiz hesablamalar səbəbilə optimizasiya edilmiş variantda böyük rəqəmlərin emal olunması zamanı iş nəticələri həqiqəti əks etdirmirdilər. Bundan əlavə olaraq nümunələrin linklərsiz kopyalanması və lisenziyaların qeyd edilməməsi problemlərinə də nəzər yetirilib. İlkin tədqiqatların nəticələrinə əsasən tərtibatçıların 46%-i bu kodu StackOverflow-dan müəllifin adının qeyd olunmaması şəklində yükləyib, 75%-i bu kodun CC BY-SA lisenziyası vasitəsilə yayılmasından xəbərsiz olub, 67%-i isə bu kodun yüklənməsi zamanı müəllifin adının qeyd olunmasının mütləq olmasından xəbərsiz olub. 
    Linki kopyala