Günümüz yazılım dünyasında, temiz kod yazma becerisi çoğu zaman bir yazılımcının değerini belirleyen kritik bir faktör olarak görülür.

Clean Code Prensipleri ve Gerçek Dünyada Uygulanması

Günümüz yazılım dünyasında, temiz kod yazma becerisi çoğu zaman bir yazılımcının değerini belirleyen kritik bir faktör olarak görülür. İyi yazılmış, okunabilir ve bakımı kolay kod, projelerin uzun vadede sürdürülebilirliğini ve ekibin verimliliğini arttırır. Bu makalede, Clean Code prensiplerini özetleyerek bu prensiplerin gerçek dünyadaki uygulama örneklerini inceleyeceğiz.

Clean Code Nedir?

Clean Code, Robert C. Martin (“Uncle Bob”) tarafından popülerleştirilen, yazılımda yalın ve okunabilir kod yazmayı hedefleyen bir yaklaşımdır. Temelinde, kodun sadece makine tarafından değil, insanlar tarafından da kolayca anlaşılabilir olması gerektiği yatar. İşte temel Clean Code prensipleri:

  1. Anlamlı İsimler Kullanın

    • Değişken, fonksiyon ve sınıf isimleri, ne yaptıklarını açıkça ifade etmelidir.

  2. Kısa ve Amaç Odaklı Fonksiyonlar Yazın

    • Bir fonksiyon yalnızca bir iş yapmalı ve bunu iyi yapmalıdır.

  3. Kodda Tekrardan Kaçının (DRY: Don’t Repeat Yourself)

    • Kodun tekrar eden bölümlerini yeniden kullanılabilecek şekilde soyutlayın.

  4. Yorumlara Daha Az, Anlamlı Kodlara Daha Fazla Odaklanın

    • Kodun kendisi yeterince açık olmalı; yorumlar yalnızca karmaşık bölümler için eklenmelidir.

  5. Hataları Erken Fark Edin ve Ele Alın

    • Hata kontrol mekanizmaları kodunuzu karışık hale getirmemelidir.

  6. Kod Formatlaması ve Tutarlılık

    • Kod formatının tutarlı olması okunabilirliği arttırır.

Gerçek Dünyada Clean Code Prensiplerinin Uygulanması

1. Anlamlı İsimler Kullanma

Gerçek dünyada projelerde değişken isimleri genellikle aceleyle veya geliştirme sürecinin baskısıyla rastgele belirlenir. Ancak anlamlı isimler, kısa vadeli faydaların ötesinde, uzun vadede projeye büyük katkı sağlar.

Kötü Örnek:

var d = DateTime.Now;
var x = d.AddDays(1);

Temiz Kod Örneği:

var currentDate = DateTime.Now;
var nextDay = currentDate.AddDays(1);

2. Kısa ve Amaç Odaklı Fonksiyonlar

Uzun fonksiyonlar, kodun karmaşıklaşmasına ve okunabilirliğin düşmesine neden olur.

Kötü Örnek:

public void ProcessOrder(Order order)
{
    // Validasyon
    if (order == null || order.Items.Count == 0)
    {
        throw new ArgumentException("Order is invalid");
    }

    // Sipariş şartları kontrolü
    if (!IsOrderEligible(order))
    {
        throw new InvalidOperationException("Order is not eligible");
    }

    // Siparişi işle
    SaveOrder(order);
    NotifyCustomer(order);
}

Temiz Kod Örneği:

public void ProcessOrder(Order order)
{
    ValidateOrder(order);
    EnsureOrderEligibility(order);
    FinalizeOrder(order);
}

private void ValidateOrder(Order order)
{
    if (order == null || order.Items.Count == 0)
    {
        throw new ArgumentException("Order is invalid");
    }
}

private void EnsureOrderEligibility(Order order)
{
    if (!IsOrderEligible(order))
    {
        throw new InvalidOperationException("Order is not eligible");
    }
}

private void FinalizeOrder(Order order)
{
    SaveOrder(order);
    NotifyCustomer(order);
}

3. Kodda Tekrardan Kaçınma (DRY)

Kod tekrarlama, projelerde teknik borcun en yaygın kaynaklarından biridir.

Kötü Örnek:

public decimal CalculateDiscount(Order order)
{
    if (order.Total > 100)
    {
        return order.Total * 0.1m;
    }
    return 0;
}

public decimal CalculateTax(Order order)
{
    if (order.Total > 100)
    {
        return order.Total * 0.2m;
    }
    return order.Total * 0.15m;
}

Temiz Kod Örneği:

public decimal CalculateDiscount(Order order) => order.Total > 100 ? order.Total * 0.1m : 0;

public decimal CalculateTax(Order order)
{
    var taxRate = order.Total > 100 ? 0.2m : 0.15m;
    return order.Total * taxRate;
}

4. Yorumlardan Kaçınma ve Anlamlı Kod Yazma

Yorumlar genellikle kodun yetersiz açıklığını telafi etmek için kullanılır. Ancak bu durum daha iyi bir kod yapısı ile çözülebilir.

Kötü Örnek:

// Kullanıcı adını kontrol ediyoruz
if (user.Name == null || user.Name == "")
{
    throw new Exception("Invalid user name");
}

Temiz Kod Örneği:

if (string.IsNullOrWhiteSpace(user.Name))
{
    throw new Exception("Invalid user name");
}

Sonuç

Clean Code prensipleri, yazılım geliştiricilerin daha okunabilir, bakımı kolay ve sürdürülebilir projeler oluşturmasına yardımcı olur. Bu prensiplerin uygulanması, ekip çalışmasını kolaylaştırır ve teknik borcu azaltarak uzun vadeli başarı sağlar. Projelerinizde bu prensiplere uymak, kod kalitesini arttırırken geliştirme sürecini daha keyifli hale getirecektir.

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder