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%-ը չգիտեր, որ դրա համար անհրաժեշտ է վերագրում:

On տրված Մեկ այլ հետազոտության համաձայն՝ կոդի օրինակների պատճենումը ներառում է ոչ միայն կոդի սխալների վտանգը, այլև խոցելիությունը: Օրինակ, StackOverflow-ում 72483 C++ կոդի օրինակներ վերլուծելուց հետո հետազոտողները հայտնաբերեցին լուրջ խոցելիություններ 69 օրինակներում (որը կազմում է 0.09%), որոնք ներառված են ամենահայտնի առաջարկությունների ցանկում: Այնուհետև վերլուծելով այս կոդի առկայությունը GitHub-ում, պարզվեց, որ StackOverflow-ից պատճենված խոցելի կոդը առկա է 2859 նախագծերում:

Source: opennet.ru

Добавить комментарий