Aikido

Neden açıklayıcı değişken adları kullanarak kendi kendini açıklayan kod yazmalısınız?

Okunabilirlik

Kural
Kullanım açıklayıcı değişken kullan.
Çok kısa değişken adları yazılması kodun anlaşılmaz hale getirir.

Desteklenen diller: 45+

Giriş

Tek harfli veya anlaşılması zor değişken adları, okuyucuların kodu bir bakışta anlamak yerine anlamını bağlamdan çıkarmaya zorlar. Adı d tarih, süre, mesafe veya veriyi ifade edebilir ve fonksiyon boyunca amacını takip etmek için zihinsel çaba gerektirebilir. Şu gibi açıklayıcı isimler: kullanıcı Tarafından Oluşturulma Tarihi veya istek Süresi bilişsel yük yaratmadan niyeti anında netleştirmek.

Neden önemli?

Kod bakım kolaylığı: Belirsiz değişken adları, kodun anlaşılmasını yavaşlatır. Geliştiriciler, asıl mantığa odaklanmak yerine x, tmp veya val gibi değişkenlerin neyi temsil ettiğini anlamaya zaman harcarlar. Kötü isimlendirme, yeni mantığın nereye yerleştirileceği veya mevcut değerlerin birbirleriyle nasıl ilişkili olduğu belirsiz olduğu için kodun genişletilmesini de zorlaştırır. Üstelik, belirsiz isimler kod tabanını aranamaz hale getirir; çünkü tmp veya val araması anlamlı sonuçlar vermez. Bu durum, aylar sonra koda geri dönüldüğünde veya yeni ekip üyeleri katıldığında daha da karmaşık hale gelir.

Hata açıklaması: Belirsiz isimler, yanlış değişkeni kullanma olasılığını artırır. Birden fazla değişkenin benzer ve anlaşılması zor isimleri olduğunda (d1, d2, d3), geliştiriciler yanlış olanı kullanabilir ve isimler anlamsal ipucu sağlamadığından kod incelemesinden geçen ince hatalara yol açabilir.

Kod örnekleri

❌ Uygun değil:

function calcAmt(u, qty) {
    const p = u.prc;
    const d = u.disc || 0;
    const t = p * qty;
    const a = t - (t * d);
    const tx = a * 0.08;
    return a + tx;
}

Neden yanlış: Şu tür değişken adları: u, p, d, t, ve bunların amacına dair hiçbir ipucu vermez. Okuyucular, şunu anlamak için hesaplama mantığını adım adım takip etmelidir: p fiyat, d indirimdir, t ara toplamdır ve a Bu, vergi öncesi tutardır.

✅ Uygunluk:

function calculateOrderAmount(product, quantity) {
    const price = product.price;
    const discount = product.discount || 0;
    const subtotal = price * quantity;
    const amountAfterDiscount = subtotal - (subtotal * discount);
    const tax = amountAfterDiscount * 0.08;
    return amountAfterDiscount + tax;
}

Bunun önemi: Her değişken adı, içerdiği şeyi açıklar. indirim sonrası tutar hesaplama durumunu açıkça gösterir, vergi kesin bir anlam taşır ve ürün ve miktar fonksiyonun gövdesini okumaya gerek kalmadan girdi değerlerini ortaya çıkarmak.

Sonuç

Bağlam gerektirmeden amacını ortaya koyan isimler kullanın. Kısa olmaktan ziyade açıklığa öncelik verin. İçindeki fazladan karakterler toplamFiyat karşı tp Uygulamada hiçbir maliyeti yoktur, ancak anlamada önemli ölçüde zaman tasarrufu sağlar.

Sık Sorulan Sorular

Sorularınız mı var?

Tek harfli değişken adları kabul edilebilir mi?

Evet, belirli bağlamlarda. Döngü sayıcıları (i, j, k) geleneksel ve anlaşılırdır. İşlevsel programlamadaki lambda fonksiyon parametreleri (x => x * 2), işlem açık ve net olduğunda sorun teşkil etmez. Matematiksel işlemlerde geleneksel isimler kullanılabilir (koordinatlar için x, y gibi). Ancak bunlar, küçük kapsamlarla (birkaç satır) sınırlı tutulmalıdır.

Değişken adları ne kadar uzun olmalı?

Anlaşılır olacak kadar uzun, pratik olacak kadar kısa. userData, u'dan ve dataAboutTheCurrentUserBeingProcessed'den daha iyidir. 2-4 kelimeyi hedefleyin. Daha fazlasına ihtiyacınız varsa, bu değişken kendi türünü veya sınıfını hak eden bir kavramı temsil ediyor olabilir.

Peki ya btn, msg veya ctx gibi kısaltmalar ne olacak?

Kendi alanınızda yaygın olarak kullanılan kısaltmalar kabul edilebilir. JavaScript’te “ctx” (bağlam), “req” (istek) ve “res” (yanıt) gibi kısaltmalar yaygın olarak anlaşılır. Ancak, yeni ekip üyeleri için açık olmayan, projeye özgü kısaltmalardan kaçının. Şüphe duyduğunuzda, kelimeyi tam olarak yazın.

Eski kodu yeniden düzenlerken değişkenlerin adlarını değiştirmeli miyim?

Evet, ama stratejik bir şekilde. Bir fonksiyona başka nedenlerle müdahale ediyorsanız, değişiklik kapsamında değişken adlarını da iyileştirin. Adlar aktif bir kafa karışıklığına veya hatalara yol açmıyorsa, yalnızca ad değiştirme amacıyla PR oluşturmayın. Tüm referansların doğru şekilde güncellenmesini sağlamak için IDE’nin yeniden yapılandırma araçlarını kullanın.

Dil anahtar kelimeleriyle ilgili çakışmaları nasıl çözebilirim?

Daha spesifik isimler kullanın: class yerine userClass, type yerine itemType. Ya da bağlamı kullanın: userCategory, productKind. Asla sayı eklemeyin (class1, class2), çünkü bu isimlerin anlamını yitirmesine neden olur. Kısıtlamalar genellikle zaten daha spesifik bir isme ihtiyacınız olduğunu ortaya çıkarır.

Şimdi güvenliğinizi sağlayın

Kodunuzu, bulutunuzu ve çalışma zamanınızı tek bir merkezi sistemde güvenceye alın.
Güvenlik açıklarını otomatik olarak hızla bulun ve düzeltin.

Kredi kartı gerekmez | Tarama sonuçları 32 saniyede.