ตัวอย่างโค้ด Java ที่ได้รับความนิยมสูงสุดบน StackOverflow มีข้อผิดพลาด

Самыйпопулярный ตัวอย่างโค้ด Javaเผยแพร่บน StackOverflow กลายเป็น โดยมีข้อผิดพลาดที่นำไปสู่ผลลัพธ์ที่ไม่ถูกต้องภายใต้เงื่อนไขบางประการ โค้ดดังกล่าวถูกโพสต์ในปี 2010 และได้สะสมคำแนะนำไว้มากกว่าหนึ่งพันรายการ และยังได้รับเช่นกัน คัดลอก ในหลายโครงการและปรากฏในพื้นที่เก็บข้อมูลบน GitHub ประมาณ 7 ครั้ง เป็นที่น่าสังเกตว่าข้อผิดพลาดไม่ได้ถูกพบโดยผู้ใช้ที่คัดลอกโค้ดนี้ลงในโปรเจ็กต์ของตน แต่โดยผู้เขียนคำแนะนำดั้งเดิม

โค้ดดังกล่าวแปลงขนาดไบต์ให้อยู่ในรูปแบบที่อ่านได้ เช่น แปลง 110592 เป็น "110.6 kB" หรือ "108.0 KiB" รหัสถูกเสนอเป็นเวอร์ชันที่ปรับให้เหมาะสมลอการิทึมของคำแนะนำที่เสนอก่อนหน้านี้ ซึ่งค่าถูกกำหนดตามการหารตามลำดับของค่าดั้งเดิมในลูปภายในปี 1018, 1015, 1012, 1019
106, 103 และ 100 ตราบใดที่ตัวหารมากกว่าค่าไบต์ดั้งเดิม เนื่องจากการคำนวณที่เลอะเทอะในเวอร์ชันที่ปรับให้เหมาะสม (การล้นของค่าแบบยาว) ผลลัพธ์เมื่อประมวลผลตัวเลขที่มีขนาดใหญ่มาก (เอ็กซาไบต์) จึงไม่สอดคล้องกับความเป็นจริง

ผู้เขียนคำแนะนำยังพยายามดึงความสนใจไปที่ปัญหาการคัดลอกตัวอย่างโดยไม่ต้องอ้างอิงแหล่งที่มาและไม่ได้ระบุใบอนุญาต ตามข้อมูลก่อนหน้านี้ ดำเนินการวิจัย นักพัฒนา 46% คัดลอกโค้ดจาก StackOverflow โดยไม่มีการระบุแหล่งที่มา 75% ไม่ทราบว่าโค้ดดังกล่าวได้รับอนุญาตภายใต้ CC BY-SA และ 67% ไม่ทราบว่าจำเป็นต้องระบุแหล่งที่มานี้

บน ข้อมูล จากการศึกษาอื่น การคัดลอกโค้ดไม่เพียงเกี่ยวข้องกับความเสี่ยงของข้อผิดพลาดในโค้ดเท่านั้น แต่ยังรวมถึงช่องโหว่ด้วย ตัวอย่างเช่น หลังจากวิเคราะห์ตัวอย่างโค้ด C++ 72483 ตัวอย่างบน StackOverflow นักวิจัยได้ระบุช่องโหว่ร้ายแรงใน 69 ตัวอย่าง (ซึ่งเท่ากับ 0.09%) ซึ่งรวมอยู่ในรายการคำแนะนำยอดนิยมที่สุด หลังจากวิเคราะห์การมีอยู่ของโค้ดนี้บน GitHub แล้ว พบว่าโค้ดที่มีช่องโหว่ที่คัดลอกจาก StackOverflow มีอยู่ในโปรเจ็กต์ 2859 รายการ

ที่มา: opennet.ru

เพิ่มความคิดเห็น