Temiz Kod Clean Code Yazmanin 10 Altin Kurali

Temiz Kod (Clean Code) Yazmanın 10 Altın Kuralı

Yazılım geliştirme sürecinde temiz kod yazmak, hem projenin sürdürülebilirliği hem de ekip içi iletişim açısından kritik bir öneme sahiptir. Temiz kod, okunabilirliği yüksek, bakımı kolay ve hatası az olan kod anlamına gelir. İşte temiz kod yazmanın 10 altın kuralı:

1- Anlamlı İsimlendirmeler Kullanın

Değişken, fonksiyon veya sınıf isimleri, ne yaptığını açıkça belirtmelidir. Anlamsız kısaltmalar veya tek harfli isimler yerine, amacı netleştiren isimler tercih edilmelidir.

Örneğin, bir kullanıcının yaşını tutan değişken için a yerine userAge kullanmak daha doğrudur. Aynı şekilde, bir fonksiyon ismi proc() yerine calculateUserDiscount() olarak belirlenmelidir.

# Kötü Örnek  
def f(x):  
    return x * 2  

# İyi Örnek  
def calculateDouble(value):  
    return value * 2  

2- Fonksiyonlar Tek Bir İş Yapmalı

Her fonksiyonun tek bir sorumluluğu olmalıdır. Bir fonksiyon hem veri çekip hem de formatlamamalıdır. Bu, kodun yeniden kullanılabilirliğini artırır ve test etmeyi kolaylaştırır.

Örneğin, bir e-ticaret sisteminde sepete ürün ekleyen ve aynı zamanda ödeme hesaplaması yapan bir fonksiyon yerine, bu işlemler iki ayrı fonksiyona bölünmelidir.

# Kötü Örnek  
def addToCartAndCalculateTotal(product):  
    cart.append(product)  
    total = sum(item.price for item in cart)  
    return total  

# İyi Örnek  
def addToCart(product):  
    cart.append(product)  

def calculateTotal(cart):  
    return sum(item.price for item in cart)  

3- Gereksiz Yorum Satırlarından Kaçının

Kodun kendisi kendini açıklayıcı olmalıdır. Eğer yorum satırlarıyla kodun ne yaptığını anlatıyorsanız, muhtemelen isimlendirme veya fonksiyon yapısında hata var demektir. Yorumlar, neden yapıldığını açıklamak için kullanılmalıdır

Örneğin, bir döngüde neden belirli bir koşulun atlandığını açıklamak faydalı olabilir:

# Kötü Örnek  
# Kullanıcı yaşını kontrol et  
if user.age > 18:  
    print("Yetişkin")  

# İyi Örnek  
# 18 yaş altı kullanıcılar için kayıt izni yok (Yasa Madde 25)  
if user.age < 18:  
    raise PermissionError("Yaş sınırı nedeniyle kayıt reddedildi.")  

4- Kod Tekrarını Önleyin (DRY Prensibi)

Don’t Repeat Yourself (DRY) prensibi, aynı kodu birden fazla yerde yazmamanız gerektiğini söyler. Tekrarlanan kod parçalarını fonksiyon veya sınıflara taşıyın.

Örneğin, iki farklı yerde kullanıcı e-posta formatını kontrol eden kod varsa, bu işlem bir fonksiyona dönüştürülmelidir:

# Kötü Örnek  
if re.match(r"[^@]+@[^@]+\.[^@]+", email1):  
    print("Geçerli")  

if re.match(r"[^@]+@[^@]+\.[^@]+", email2):  
    print("Geçerli")  

# İyi Örnek  
def isValidEmail(email):  
    return re.match(r"[^@]+@[^@]+\.[^@]+", email)  

if isValidEmail(email1):  
    print("Geçerli")  

5- Hata Yönetimini Doğru Yapın

Hataları görmezden gelmek yerine, try-except bloklarıyla ele alın. Ayrıca, hata mesajlarının anlaşılır olmasına dikkat edin.

Örneğin, bir dosya okuma işlemi sırasında oluşabilecek hatalar:

# Kötü Örnek  
file = open("data.txt")  
data = file.read()  

# İyi Örnek  
try:  
    file = open("data.txt")  
except FileNotFoundError:  
    print("Dosya bulunamadı.")  
except PermissionError:  
    print("Dosya okuma izniniz yok.")  
else:  
    data = file.read()  

6- Kodunuzu Formatlayın ve Standartlara Uyun


Kodunuzun girinti, boşluk ve süslü parantez kullanımında tutarlı olun. PEP8 (Python), ESLint (JavaScript) gibi dil özelindeki formatlama kurallarını takip edin.

Örneğin, Python’da satır uzunluğu 79 karakteri geçmemelidir. Ayrıca, değişken isimlendirmelerinde snake_case kullanılmalıdır.

7- Unit Test Yazın


Test edilebilir kod yazmak, hataları erken yakalamanızı sağlar. Her fonksiyon için unit testler oluşturun ve testleri otomatize edin.

Örneğin, bir toplama fonksiyonu için test senaryosu:

def add(a, b):  
    return a + b  

# Test  
def test_add():  
    assert add(2, 3) == 5  
    assert add(-1, 1) == 0  

8- Magic Number’lardan Kaçının


Kod içinde anlamı belirsiz sayılar (sihirli sayılar) kullanmak yerine, bu değerleri sabitlere (constant) atayın.

Örneğin, vergi hesaplamasındaki %18’lik KDV oranı:

# Kötü Örnek  
total = price * 1.18  

# İyi Örnek  
TAX_RATE = 1.18  
total = price * TAX_RATE  

9- Kodunuzu Düzenli Olarak Gözden Geçirin (Code Review)


Kodunuzu ekip arkadaşlarınızla düzenli olarak inceleyin. Farklı bakış açıları, potansiyel hataları veya iyileştirmeleri ortaya çıkarabilir.

12- Sürekli Refaktör Yapın


Kodunuzu iyileştirmek için asla geç kalmayın. Teknik borç biriktirmek, uzun vadede projeyi yönetilemez hale getirir.

Örneğin, karmaşık bir fonksiyonu daha küçük parçalara bölmek:

# Kötü Örnek  
def processOrder(order):  
    # 50 satırlık karmaşık işlemler  
    ...  

# İyi Örnek  
def validateOrder(order): ...  
def calculateTotal(order): ...  
def sendConfirmation(order): ...  
Previous Article

SQL ve NoSQL Nedir?

Next Article

SOLID Prensipleri: Nesne Yönelimli Tasarımın Temelleri

Write a Comment

Leave a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir