Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Code Smell'ler Gözümü O Kadar Rahatsız Ediyor Ki, Düzeltmeden Devam Edemiyorum!

codrix

Üye
Katılım
14 Mart 2026
Mesajlar
20
Kafayı yiyecektim! Dün gece basit bir API endpoint'i yazıyordum. 50 satırlık bir fonksiyon, iç içe geçmiş 4 tane if bloğu, bir sürü sihirli sayı (magic number) ve değişken isimleri olarak a, temp, data2... Mouse'u kaydırdıkça burnuma ağır bir koku gelmeye başladı. Meğerse sorun benim kodumun ta kendisiymiş. Code smell alarmı çalıyordu ve ben onu görmezden gelmeye çalışıyordum. Artık olmuyor, gözümü o kadar çok batırıyorlar ki, düzeltmeden bir sonraki satıra yazamaz oldum.

🤢 Nefes Alamıyorum: O İğrenç "Long Method"

Şaka gibi ama, bir fonksiyona bakıyorsun ve "Bu ne yapıyor acaba?" diye kendine soruyorsun. Cevap: "Her şeyi!". Şu kodu görünce içim daralıyor:
Python:
def process_user_data(data):
    # Validasyonlar (20 satır)
    # Veriyi temizleme (15 satır)
    # DB'ye kaydet (10 satır)
    # Loglama ve email atma (10 satır)
    # Özel rapor üret (5 satır)
    return result
Hemen içgüdüsel olarak parçalara bölmeye başlıyorum. extract method refleksim o kadar gelişti ki, artık IDE'mdeki kısayolu ezberledim. Tek sorumluluğu olan, anlaşılır isimlendirilmiş küçük fonksiyonlar... Oh, mis gibi hava!

🌀 Büyü Bozma: "Magic Number" Laneti

Kodun içine serpiştirilmiş 86400, 3, 0.1 gibi sayılar görmek... StackOverflow'dan kopyala-yapıştır yaparken bıraktığımız lanetler bunlar. Meğerse sorun şuradaymış: 6 ay sonra koda baktığında "Bu 3 neyin 3'ü?" diye kendine küfrediyorsun. Şimdi kuralım: Direkt CONSTANT olarak tanımla ve AÇIKLAYICI bir isim ver.
JavaScript:
// ESKİ: if (user.status === 3) { ... }
// YENİ:
const USER_STATUS_ACTIVE = 3;
if (user.status === USER_STATUS_ACTIVE) { ... }
Bir değişiklik yapman gerektiğinde, tüm kod tabanında 3'ü aramak yerine, tek bir sabiti değiştirmen yetiyor. Hayat kurtarıcı!

🧹 Temizlik Şart: "Lazy Class" & "Dead Code"

Bazen sırf "ileride belki lazım olur" diye yazdığımız, içinde iki property ve bir getter'dan başka bir şey olmayan class'lar... Ya da hiç çağrılmayan, testlerde bile kullanılmayan fonksiyonlar. Bunlar projede ölü ağırlık. Git log'larını karıştır, kimse kullanmıyorsa acımasız ol ve sil gitsin! Proje daha hafiflesin, zihnin daha ferah olsun.

Sonuç olarak, bu smell'leri temizlemek bir "mükemmeliyetçilik hastalığı" değil. Aksine, gelecekteki beni ve takım arkadaşlarımı korumak için bir öz bakım. Kod review'ü yaparken artık ilk baktığım şey logic hatalar değil, bu kokular oluyor. Siz de böyle takıntılar geliştirdiniz mi? Mesela deeply nested if'leri görünce eliniz mi kaşınıyor? Yoksa "Çalışıyor ya, bırak öyle dursun" mu diyorsunuz? Tartışalım!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri