3 puan yazan GN⁺ 2023-09-28 | 1 yorum | WhatsApp'ta paylaş
  • 2010'da Andreas Lundblad tarafından yazılan en çok kopyalanan Stack Overflow snippet'inde bir kusur var.
  • Bu snippet, bayt sayısını insanın okuyabileceği bir biçimde gösterme sorununa çözüm getiriyor. Örneğin 123.456.789 baytı "123.5 MB" olarak ifade ediyor.
  • Lundblad'ın çözümü, uygun soneki (kB, MB, GB vb.) hesaplamak için döngü yerine logaritma kullanıyor.
  • Bu snippet, "GitHub Projelerinde Stack Overflow Kod Snippet'lerinin Kullanımı ve Atıf Verilmesi" başlıklı 2018 tarihli bir araştırmada tespit edildikten sonra en çok kopyalanan parça oldu.
  • Araştırma, çoğu kişinin Stack Overflow'dan kod kopyalarken uygun atıf eklemediğini ortaya koydu.
  • Lundblad'ın snippet'indeki kusur, bayt sayısı 1 MB'a yaklaştığında bir yuvarlama hatası üretmesi. Örneğin 999.999 bayt girdisi, doğru sonuç olan "1.0 MB" yerine "1000.0 kB" döndürüyor.
  • Lundblad, bu tür sorunları ve diğer uç durumları ele alan düzeltilmiş bir kod sürümü sunuyor. Buna negatif girdiler ve double hassasiyet sınırları da dahil.
  • Bu yazıdan çıkarılabilecek temel dersler; tüm uç durumları test etmenin önemi, kayan noktalı aritmetiğin karmaşıklığı ve kod kopyalarken uygun atıf verme gerekliliğidir.

1 yorum

 
GN⁺ 2023-09-28
Hacker News yorumları
  • Yorumlara göre, tüm zamanların en çok kopyalanan StackOverflow kod parçacığında bir kusur var.
  • Yorum yapanlar, hatalı kodun gereksiz sabit kodlanmış değerler ve if ifadeleri kullandığını, bunun ikili arama ile sadeleştirilebileceğini belirtiyor.
  • Bazı yorumcular, koddaki iki log() çağrısını, bir pow() çağrısını ve ceil() kullanımını sorgulayarak, daha basit bir yaklaşımın daha etkili olabileceğini öne sürüyor.
  • Boyutları insan tarafından okunabilir bir biçimde biçimlendirmek için Rust ve .NET için PrettySize kütüphanesi gibi alternatif kütüphaneler bulunuyor.
  • Bazı geliştiriciler, StackOverflow'dan güvenilmez kodu kopyalayıp kendi uygulamalarına yapıştırma davranışıyla ilgili endişelerini dile getiriyor.
  • Kodda kayan noktalı log işlemleri ile tamsayılara uygulanan bölmenin kullanımı, gereğinden fazla karmaşık ve hataya açık olduğu gerekçesiyle eleştiriliyor.
  • Bu tartışma, kopyalanmış kod parçacıklarına bel bağlamak yerine kodun temel ilkelerini anlamanın önemini vurguluyor.
  • Yorumlar ayrıca, StackOverflow gibi topluluklarda bilgi paylaşımının daha geniş sorunları ve yanlış bilginin yayılma potansiyeli üzerine de düşünülmesini sağlıyor.