SİHİRLİ SAYILAR

Mar 04 2023
Sihirli Sayılar, temiz Kod yazmanın yollarından biridir. Hoşgeldin Arkadaşım, şimdi kodun okunmasını ve değiştirilmesini kolaylaştıran ve kodun güzel kokmasını sağlayan önemli bir prensipten bahsedeceğiz.

Sihirli Sayılar, temiz Kod yazmanın yollarından biridir.
Hoşgeldin Arkadaşım, şimdi kodun okunmasını ve değiştirilmesini kolaylaştıran ve kodun güzel kokmasını sağlayan önemli bir ilkeden bahsedeceğiz.

Öncelikle kod kokusunun ne olduğunu açıklayalım, kod kokusu yeniden düzenleme sırasında çözülebilecek sorunların bir göstergesidir, tespit edilmesi ve yakalanması kolaydır ve bunları düzeltir.

Benimle birlikte, 8 saat süren ve OMG'nin sonunda bittiğini söyleyen kodlama görevinizi bitirdikten sonra, uzun zaman aldığını !!! ve kodunuzu zorladığınızı ve bir grup kodun böyle olduğunu varsayalım.

double deductFromStanderdEmployee(JouniorEmployee standerdEmployee){
 standerdEmplyee.gross= standerdEmplyee.gross - (3.3 + 2.3) / 100 * standerdEmplyee.gross;
}

şimdi Ekip liderinin tıbbi hizmetleri yüzde 3,5'a değiştirmesi gerekiyor ve arkadaşınıza bunu yapmasını emrediyor.
arkadaşınız şimdi koda ve izlenimine bakın sağlık hizmetleri vergileri hangi sayı 3.3 veya 2.3?️

Yani şimdi sorun çok açık, açıklanamayan anlamı olan benzersiz bir değer kullandığınız, yani sihirli bir sayı anlamına gelir. sihirli numaranızı tanımlamak için adlandırılmış bir sabit kullanmak daha iyidir, Dostum, kodunu biraz yeniden düzenleyelim.

const double GOVERNMENTAL_TAXES_PERSENTAGE=3.3;
const double MEDICAL_SERVICES_TAXES_PERSENTAGE=2.3;
double deductFromStanderdEmployee(JouniorEmployee standerdEmployee){
 standerdEmplyee.gross= standerdEmplyee.gross - (GOVERNMENTAL_TAXES_PERSENTAGE + MEDICAL_SERVICES_TAXES_PERSENTAGE) / 100 * standerdEmplyee.gross;
}

şimdi 100'ün sihirli bir sayı olmadığını mı soruyorsunuz?
Hayır, sihirli bir sayı değil diyeceğim, yüzdeyi hesapladığımızı fark edebiliyoruz, bu yüzden çok temizlenmiş ve mahsur kalmış. örneğin bir for döngüsü gibidir:

for (int i=0;i<n;i++){
    //some code here;
}

Özetle , sihirli sayıların bazı çelişkiler yarattığını fark ettik ve bu hatalara düşmemek için yeniden düzenlememizde bunu iyi fark etmemiz gerekiyor.

Bir sonraki yazımda görüşmek dileğiyle okuduğunuz için teşekkür ederim.