Aikido

Daha güvenli ve daha sürdürülebilir kod için fonksiyonlara açıklayıcı yorumlar nasıl eklenir?

Okunabilirlik

Kural 

Açıklayıcı yorumları olmayan fonksiyonlar.
Yorumsuz fonksiyonları diğer geliştiricilerin anlaması 
zordur. 

Desteklenen diller: 45+

Giriş

Yorum içermeyen fonksiyonlar, geliştiricilerin niyeti yalnızca uygulama detaylarından yola çıkarak çıkarmak zorunda kalmasına neden olur. Bu durum kod incelemelerini yavaşlatır ve bakımı daha hataya açık hale getirir. Eksik açıklamalar ayrıca doğrulama, girdi beklentileri veya güvenlik kısıtlamaları etrafındaki varsayımları gizler. Net dokümantasyon yanlış kullanımı azaltır ve ekiplerin kod davranışını daha hızlı anlamasına yardımcı olur.

Neden önemli?

Güvenlik etkileri: Eksik yorumlar; doğrulama, yetkilendirme kontrolleri ve güvenilir girdiler etrafındaki varsayımları gizleyerek kötüye kullanımı kolaylaştırır ve güvenlik risklerini artırır.

Performans etkisi: Dokümante edilmeyen fonksiyonlar yanlış kullanılabilir; bu da tekrarlanan maliyetli işlemlere, gereksiz ayrıştırmaya (parsing) veya verimsiz veri işlemeye neden olur.

Sürdürülebilirlik: Niyet belgelenmediğinde geliştiriciler mantığı okumaya ve tersine mühendislik yapmaya daha fazla zaman harcar, bu da yeniden düzenlemeyi ve ekibe uyum sürecini yavaşlatır.

Kod örnekleri

❌ Kural dışı:

// No explanation of expected input or security assumptions
function normalizeUser(user) {
    if (!user || typeof user !== 'object') return null;

    return {
        id: String(user.id).trim(),
        email: user.email.toLowerCase(),
        roles: user.roles.filter(r => r !== 'guest')
    };
}

Neden yanlış: Fonksiyon güvenlikle ilgili alanları işliyor ancak güvenilir kaynaklar, beklenen yapı veya girdi kısıtlamaları hakkındaki varsayımları belgelemiyor.

✅ Kurallara uygun:

/**
 * Normalize user data from external input.
 * Expects: `user` contains `id`, `email`, and `roles`.
 * Rejects invalid structures and filters unsafe role values.
 * Ensures normalized identifiers and lowercased email for consistency.
 */
function normalizeUser(user) {
    if (!user || typeof user !== 'object') return null;

    return {
        id: String(user.id).trim(),
        email: user.email.toLowerCase(),
        roles: user.roles.filter(r => r !== 'guest')
    };
}

Neden önemli: Yorum; niyeti, beklenen girdileri ve güvenlik kısıtlamalarını belgelendirerek kullanımı öngörülebilir kılar ve güvenli olmayan entegrasyonları önler.

Sonuç

Niyetin, varsayımların veya kısıtlamaların imzadan açıkça anlaşılmadığı tüm fonksiyonlara net yorumlar ekleyin. Fonksiyonun ne beklediğini, ne döndürdüğünü ve güvenlikle ilgili olası davranışları belgelendirin. Bu, inceleme kalitesini artırır, yanlış kullanımı azaltır ve kod tabanı genelinde öngörülebilir bir davranış sağlar.

Sık Sorulan Sorular

Sorularınız mı var?

Her JavaScript fonksiyonuna yorum eklemeli miyim?

Hayır. Davranışın bariz olmadığı, özellikle dış girdileri, hassas verileri veya karmaşık dönüşümleri işleyen fonksiyonlara yorum ekleyin.

İyi bir fonksiyon yorumu neyi açıklamalıdır?

Niyeti, beklenen parametreleri, dönüş değerlerini, yan etkileri (side effects) ve güvenilir veya doğrulanmış verilerle ilgili varsayımları.

Yorumlar güvenlik denetimlerine yardımcı olur mu?

Evet. Net yorumlar varsayımları ve kısıtlamaları açığa çıkararak doğrulama sınırları ve olası kötüye kullanım üzerine mantık yürütmeyi kolaylaştırır.

Yorumlar, iyi adlandırmanın yerini alabilir mi?

Hayır. Yalnızca isimlendirmenin temel amacı veya kısıtlamaları ifade edemediği durumlarda açıklayıcı isimler kullanın ve yorum satırları ekleyin.

Yorum satırları çalışma zamanı (runtime) performansını etkiler mi?

Hayır. Yorum satırları yürütme sırasında kaldırılır; yalnızca geliştiricinin anlamasını kolaylaştırır ve kod güvenliğini artırı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.