Skip to main content
Ela Kızılkaya

Clean Code Nedir Ve Nasıl Uygulanır ?

“Clean Code” (Temiz Kod), sadece bilgisayarların anlayabileceği değil, geliştiricilerin de kolayca okuyup anlayabileceği bir kod yazma yaklaşımıdır. Robert C. Martin’in “Clean Code: A Handbook of Agile Software Craftsmanship” kitabında da vurguladığı gibi, temiz kod, sürdürülebilir ve anlaşılır yazılımdır.
Temiz Kodun Temel İlkeleri

1. Anlaşılır İsimlendirme:

Değişken, fonksiyon ve sınıf isimleri, ne yaptıklarını açıkça anlatmalıdır.

//İyi Örnek: 

calculateTotalPrice()

//Kötü Örnek: 

calcTP()


2. Tek Bir Amaç (Single Responsibility Principle – SRP):

Her fonksiyon ve sınıf tek bir sorumluluğa sahip olmalıdır.
Bir metodun ya da sınıfın farklı işleri bir arada yapması, kodu karmaşık ve hataya açık hale getirir.

//İyi örnek(Tek bir amaç):
public class InvoiceProcessor
{
    public void CalculateTotal(Invoice invoice) 
    {
        // Fatura toplamını hesaplar
        invoice.Total = invoice.Items.Sum(item => item.Price);
    }
}
//Kötü örnek(Birden fazla amaç):
public class InvoiceProcessor
{
    public void ProcessInvoice(Invoice invoice) 
    {
        // Fatura toplamını hesapla
        invoice.Total = invoice.Items.Sum(item => item.Price);

        // Fatura bilgilerini veritabanına kaydet
        SaveInvoiceToDatabase(invoice);

        // Fatura bilgilerini e-posta ile gönder
        SendInvoiceByEmail(invoice);
    }

    private void SaveInvoiceToDatabase(Invoice invoice)
    {
        // Veritabanı işlemleri
    }

    private void SendInvoiceByEmail(Invoice invoice)
    {
        // E-posta gönderme işlemleri
    }
}

3.Kısa ve Net Fonksiyonlar:

Fonksiyonlar kısa ve tek bir görevi yerine getirmelidir.
Fonksiyon uzunluğu, okunabilirliği azaltır.

Yöntemleriniz kısa ve odaklı olsun
// İyi 
public  void  processOrder (Order order) { 
    validateOrder(order); 
    calculateTotal(order); 
    saveOrder(order); 
}
// Kötü 
public  void  processOrder (Order order) { 
    // çok fazla kod
 }
 

4. Hata Yönetimi:

Hatalar doğru bir şekilde ele alınmalı ve kullanıcıya anlamlı mesajlar sunulmalıdır.
Exception handling etkili kullanılmalıdır.

5. Kod Yorumları (Comment):

Kodun ne yaptığını değil, neden yaptığını açıklamak için yorumlar kullanılmalıdır.
İyi yazılmış bir kod, yoruma fazla ihtiyaç duymaz.

// İyi 
// Sayımı 1 artırır
 count++;

// Kötü 
// Sayımı artırır
 count++; 

6. Tutarlılık:

Kod stili ve formatlamada tutarlılık önemlidir.
Takım içi kurallar belirlenmeli ve bunlara sadık kalınmalıdır.

7. Bağımlılıkların Azaltılması:

Modüller ve sınıflar birbirlerine sıkı sıkıya bağlı olmamalıdır.
Gelecekte yapılacak değişiklikler bu sayede daha kolay olur.

Yeniden kullanılabilir kod yazmak için kalıtım ve polimorfizmi kullanın
// İyi 
public  class  Shape { 
    // Tüm şekiller için ortak kod
 } 

public  class  Square  extends  Shape { 
    // Karelere özgü kod
 } 

public  class  Circle  extends  Shape { 
    // Dairelere özgü kod
 }
// Kötü 
public  class  Square { 
    // Karelere özgü kod
 } 

public  class  Circle { 
    // Dairelere özgü kod
 } 

Temiz Kod İçin Araçlar ve Yöntemler

  • SOLID Prensipleri: Nesne yönelimli programlamada temiz ve sürdürülebilir kod için temel kurallardır.
  • Refactoring (Yeniden Düzenleme): Kodun işlevini değiştirmeden daha temiz hale getirme işlemidir.
  • Code Reviews (Kod İncelemeleri): Takım üyeleri arasında düzenli kod incelemeleri yapılmalıdır.
  • Linting ve Formatlama Araçları: ESLint, Prettier, SonarQube gibi araçlar kod kalitesini artırır.

Temiz Kodun Faydaları

  • ✅ Daha kolay okunabilir ve anlaşılabilir kod.
  • ✅ Hata ayıklama süresinin kısalması.
  • ✅ Yeni geliştiricilerin projeye hızlı adapte olması.
  • ✅ Daha kolay bakım ve geliştirme süreçleri.