Yeni bir projede, bayttan kilobayt kibibite dönüştürmem gerekiyordu . Kod yeterince basitti:
var kBval = byteVal / 1024;
Bunu yazdıktan sonra, fonksiyonun geri kalanını çalışmaya & devam ettirdim.
Fakat daha sonra, koduma yalnızca bir sihirli sayı yerleştirip girmediğimi merak etmeye başladım . Bir kısmı bunun iyi olduğunu söylüyor, çünkü sayı sabit bir sabittir ve kolayca anlaşılması gerekir. Ama benim bir başka tarafım, tanımlanmış bir sabit gibi sarılırsa çok net olacağını düşünüyor BYTES_PER_KBYTE.
Peki, iyi bilinen sabitler gerçekten büyülü olsun ya da olmasın?
İlgili sorular:
Sayı ne zaman sihirli bir sayıdır? ve Koddaki her sayı "sihirli sayı" olarak mı kabul edilir? - benzer, ancak sorduğumdan çok daha geniş sorular. Benim sorum, bu sorularda ele alınmayan bilinen sabit sayılara odaklanmıştır.
Sihirli Sayıları Silme: "Hayır" deme zamanı ne zaman? aynı zamanda ilişkilidir ancak sabit bir sayının sihirli bir sayı olup olmadığına karşı yeniden düzenlemeye odaklanmıştır.
1024, çünkü aksi halde dev ekibiniz tüm zamanını "kilobayt" mı yoksa "kibibit" mi olduğunu tartışarak geçirir.
#define KIBI1024 olarak, MEBI1024 * 1024 olarak ...
ZERO=0, ONE=1, TWO=2programların başka dillere taşınması gibi (veya programlayıcılar dillerini değiştirirken davranışını değiştirmez) gibi sabitleri göreceksiniz ve orada da göreceksiniz ve asla birinin asla değişmemesi için dua etmelisiniz ONE=2…
FOUR_HUNDRED_FOUR = 404. Değişmezler yerine sabit dizeleri kullanma konusunda militan oldukları başka bir projede çalıştım, bu yüzden kod gibi görünen onlarca satır vardı ,DATABASE = "database"