L'esempio di codice Java più popolare su StackOverflow si è rivelato avere un errore

Il più popolare esempio di codice Java, pubblicato su StackOverflow, risultato con un errore che porta a un risultato errato in determinate condizioni. Il codice esaminato è stato pubblicato nel 2010 e ha accumulato più di mille raccomandazioni, ed è stato copiato in molti progetti ed è presente nei repository su GitHub circa 7.000 volte. È notevole che l'errore non sia stato trovato dagli utenti che copiavano questo codice nei loro progetti, ma dall'autore originale del consiglio.

Il codice esaminato effettuava la conversione della dimensione in byte in un formato leggibile, ad esempio, 110592 veniva convertito in «110,6 kB» o «108,0 KiB». Il codice è stato proposto come una versione ottimizzata utilizzando logaritmi di un precedente consiglio, in cui il valore veniva determinato sulla base della divisione sequenziale del valore iniziale in un ciclo per 1018, 1015, 1012, 1019,
106, 103 e 100, finché il divisore fosse maggiore del valore iniziale in byte. A causa di calcoli imprecisi nella versione ottimizzata (overflow del valore long), il risultato del lavoro su numeri molto grandi (exabyte) non corrispondeva alla realtà.

L'autore del consiglio ha anche cercato di richiamare l'attenzione sul problema della copia degli esempi senza indicare la fonte e senza specificare la licenza. Secondo una ricerca effettuata in precedenza, il 46% degli sviluppatori ha copiato codice da StackOverflow senza citare l'autore, il 75% non sapeva che il codice era distribuito con licenza CC BY-SA, e il 67% non sapeva che ciò implicava la necessità di attribuzione. un'altra ricerca ha mostrato che copiare esempi di codice comporta non solo il rischio di presenza di errori nel codice, ma anche di vulnerabilità. Ad esempio, analizzando 72.483 esempi di codice su StackOverflow in C++, i ricercatori hanno identificato gravi vulnerabilità in 69 esempi (corrispondenti allo 0,09%), inclusi nella lista delle raccomandazioni più popolari. Analizzando successivamente la presenza di questo codice su GitHub, è emerso che il codice vulnerabile copiato da StackOverflow era presente in 2.859 progetti.

Secondo dati Il più popolare esempio di codice Java.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster