- Cuplikan yang paling banyak disalin, ditulis oleh Andreas Lundblad pada 2010, memiliki cacat.
- Cuplikan ini adalah solusi untuk masalah menampilkan jumlah byte dalam format yang mudah dibaca manusia. Misalnya, menampilkan 123,456,789 byte sebagai "123.5 MB".
- Solusi Lundblad menggunakan log alih-alih loop untuk menghitung sufiks yang tepat (kB, MB, GB, dan seterusnya).
- Cuplikan ini menjadi yang paling banyak disalin setelah diidentifikasi dalam penelitian tahun 2018 berjudul "Penggunaan dan atribusi cuplikan kode Stack Overflow dalam proyek GitHub".
- Penelitian tersebut menemukan bahwa kebanyakan orang tidak menyertakan atribusi yang semestinya saat menyalin kode dari Stack Overflow.
- Cacat pada cuplikan Lundblad adalah adanya kesalahan pembulatan ketika jumlah byte mendekati 1 MB. Misalnya, input 999,999 byte menghasilkan "1000.0 kB" alih-alih "1.0 MB" yang benar.
- Lundblad menyediakan versi kode yang telah diperbaiki untuk menangani masalah seperti ini dan kasus ekstrem lainnya. Ini mencakup input negatif dan batas presisi
double.
- Pelajaran utama dari artikel ini adalah pentingnya menguji semua kasus ekstrem, kompleksitas aritmetika floating-point, dan perlunya atribusi yang semestinya saat menyalin kode.
1 komentar
Komentar Hacker News
if, padahal bisa disederhanakan dengan pencarian biner.log(), satu pemanggilanpow(), dan penggunaanceil()dalam kode itu, serta menyarankan bahwa pendekatan yang lebih sederhana mungkin lebih efektif.logfloating-point dan pembagian yang diterapkan pada bilangan bulat dalam kode itu dikritik karena terlalu rumit dan rentan terhadap bug.