Kural
Kaldır yorumlanmış kod blokları
Yorumlanmış kod yaratır gürültü yaratır, eski modası geçer,
ve ait bu sürüm kontrol geçmişine değil kod kod tabanı değil.Giriş
Geliştiriciler, eski mantığa ileride ihtiyaç duyup duymayacaklarından emin olmadıklarında, yorum satırına alınmış kodlar birikir. Birisi bir işlevi silmek yerine “ne olur ne olmaz” diye yorum satırına alır ve bu kod sonsuza kadar orada kalır. Bu kodun hâlâ çalışıp çalışmadığını, neden devre dışı bırakıldığını ya da kaldırılmasının güvenli olup olmadığını kimse bilmez. Kod tabanı, üretim ortamında gerçekte neyin çalıştığını anlamayı zorlaştıran geçmiş uygulamaların “hayaletleriyle” dolup taşar.
Neden önemli?
Kodun bakım kolaylığı: Yorum satırına alınmış kod, okuyucuları hangi kısımların aktif, hangilerinin ise atıl durumda olduğunu zihinsel olarak ayıklamaya zorlar. Kod incelemesi sırasında, bu blokların geçici denemeler mi, önemli geri alma seçenekleri mi yoksa yıllar öncesinden kalma unutulmuş kalıntılar mı olduğunu ayırt edemezsiniz. Bu gereksiz bilgiler, asıl mantığı anlamayı, ilgili kod bölümlerini bulmayı ve değişiklikleri anlamlı bir şekilde incelemeyi zorlaştırır.
Güvenlik açısından sonuçları: Yorum satırına alınmış kimlik doğrulama kontrolleri, geçerlilik mantığı veya güvenlik özellikleri, bu koruma önlemlerinin var olduğunu ancak kasıtlı olarak devre dışı bırakıldığını ortaya koyar. Yorum satırına alınmış kodda kimlik bilgileri, API anahtarları veya dahili URL’ler bulunuyorsa, bu hassas verileri düz metin olarak yayınlamış olursunuz. Kod tabanınızı inceleyen saldırganlar, hangi güvenlik önlemlerini değerlendirip kaldırdığınızı tam olarak görebilir.
Sürüm kontrolüyle ilgili kafa karışıklığı: Git fark raporları, aslında değişmeyen yorumlanmış bloklarla dolup taşıyor. Mantığın ne zaman değiştiğini veya bir özelliğin neden belirli bir şekilde çalıştığını izlemeniz gerektiğinde, yorumlanmış alternatifler gerçek geçmişi gizliyor. Kod tabanında arama yapıldığında, artık kullanılmayan kodlarda eşleşmeler bulunur ve bu da çalıştırılmayan yolları araştırarak zaman kaybına neden olur.
Kod örnekleri
❌ Uygun değil:
async function createUser(userData) {
// const hashedPassword = await bcrypt.hash(userData.password, 10);
const user = await db.users.create({
email: userData.email,
password: userData.password,
// password: hashedPassword,
role: userData.role || 'user'
});
// await sendWelcomeEmail(user.email);
// await notifyAdmins(user);
// Old validation approach
// if (!isValidEmail(user.email)) {
// throw new Error('Invalid email');
// }
return user;
}
Neden yanlış: Yorum satırına alınmış şifre karma işlevi, şifrelerin düz metin olarak saklandığını ortaya koyuyor; bu da ciddi bir güvenlik açığıdır. Karşılama e-postası ve yönetici bildiriminin etkinleştirilmesi gerekip gerekmediği belli değil; ayrıca eski doğrulama kodu, e-posta doğrulamasının eksik olabileceğini düşündürüyor.
✅ Uygunluk:
async function createUser(userData) {
if (!isValidEmail(userData.email)) {
throw new Error('Invalid email');
}
const hashedPassword = await bcrypt.hash(userData.password, 10);
const user = await db.users.create({
email: userData.email,
password: hashedPassword,
role: userData.role || 'user'
});
await sendWelcomeEmail(user.email);
await notifyAdmins(user);
return user;
}
Bunun önemi: İşlev açık ve eksiksizdir; üretim ortamında tam olarak nelerin yürütüldüğünü gösterir. Önce e-posta doğrulaması yapılır, şifreler uygun şekilde karma hale getirilir ve hangi özelliklerin etkin olduğu konusunda herhangi bir belirsizlik olmaksızın tüm bildirimler gönderilir.
Sonuç
Kodu yorum satırı haline getirmek yerine silin. Sürüm kontrol sisteminiz, yazılmış her satırı saklar; bu satırlara şu yoldan erişilebilir: git log ve git blame ihtiyacınız olduğunda. Yorumlu kodları depoda tutmak, asıl mantığı gizleyen ve kod tabanınızda gezinmeyi zorlaştıran gereksiz bilgi yükü yaratır.

