Skip to main content
Yazılım Geliştirme

Temiz Kod Yazma Sanatı: Her Geliştiricinin Bilmesi Gereken Prensipler

Mart 29, 2026 3 dk okuma 5 views Raw
Temiz kod yazma programlama konsepti
İçindekiler

Temiz Kod: Okunabilir, Bakımı Kolay ve Güvenilir Yazılım

Yazılım geliştirmede en büyük zorluklardan biri, çalışan kod yazmak değil — okunabilir, anlaşılır ve bakımı kolay kod yazmaktır. Robert C. Martin'in ünlü kitabı "Clean Code"da belirttiği gibi: "Herhangi bir aptal, bilgisayarın anlayacağı kodu yazabilir. İyi programcılar, insanların anlayacağı kodu yazar."

Temiz Kod Nedir?

Temiz kod; okunaklı, iyi organize edilmiş, amacı açık, gereksiz tekrardan arınmış ve kolayca değiştirilebilen koddur. Temiz kod yazmak sadece bir stil tercihi değil, profesyonel bir sorumluluktur.

Temiz Kodun Temel Özellikleri

  • Okunduğunda ne yaptığı hemen anlaşılır
  • İsimlendirmeler açıklayıcı ve tutarlıdır
  • Fonksiyonlar küçük ve tek bir iş yapar
  • Tekrar eden kod yoktur (DRY prensibi)
  • Test edilmiştir ve test edilebilir yapıdadır
  • Minimum bağımlılığa sahiptir

SOLID Prensipleri

S — Tek Sorumluluk Prensibi (Single Responsibility)

Her sınıf veya modül yalnızca bir sorumluluğa sahip olmalıdır. Bir sınıfın değişmesi için yalnızca bir neden olmalıdır.

O — Açık/Kapalı Prensibi (Open/Closed)

Yazılım varlıkları genişlemeye açık, değişikliğe kapalı olmalıdır. Yeni davranışlar mevcut kodu değiştirmeden eklenebilmelidir.

L — Liskov Yerine Koyma Prensibi (Liskov Substitution)

Alt sınıflar, üst sınıfların yerine sorunsuz şekilde kullanılabilmelidir.

I — Arayüz Ayrımı Prensibi (Interface Segregation)

İstemciler kullanmadıkları arayüzlere bağımlı olmaya zorlanmamalıdır.

D — Bağımlılık Tersine Çevirme (Dependency Inversion)

Yüksek seviyeli modüller, düşük seviyeli modüllere bağımlı olmamalıdır. Her ikisi de soyutlamalara bağımlı olmalıdır.

Anlamlı İsimlendirme

Kod okunabilirliğinin en önemli unsuru isimlendirmedir. İyi isimler, kodun amacını açıkça ifade eder.

İsimlendirme Kuralları

  • Niyet belirten isimler kullanın: d yerine elapsedTimeInDays
  • Yanlış bilgi vermekten kaçının: Bir liste değilse accountList demeyin
  • Anlamlı ayrımlar yapın: data ve info arasında fark yoksa ikisinden birini kullanın
  • Telaffuz edilebilir isimler seçin: genymdhms yerine generationTimestamp
  • Aranabilir isimler kullanın: Tek harfli değişkenlerden kaçının

Fonksiyon Tasarımı

Küçük Tutun

Fonksiyonlar 20-30 satırı geçmemelidir. Uzun fonksiyonlar, birden fazla iş yapan fonksiyonlardır ve bölünmeleri gerekir.

Tek Bir İş Yapın

Her fonksiyon yalnızca bir iş yapmalıdır. Eğer bir fonksiyonu tarif ederken "ve" kelimesini kullanıyorsanız, birden fazla iş yapıyor demektir.

Parametre Sayısını Minimize Edin

İdeal fonksiyon sıfır parametrelidir (niladik). Bir (monadik) veya iki (diadik) parametre kabul edilebilir. Üçten fazla parametre neredeyse her zaman bir nesneye sarılmalıdır.

Yan Etkilerden Kaçının

Fonksiyonlar söylediklerini yapmalı, gizli işlemler gerçekleştirmemelidir.

Refactoring: Kodun Sürekli İyileştirilmesi

Refactoring, kodun dış davranışını değiştirmeden iç yapısını iyileştirme sürecidir.

Ne Zaman Refactoring Yapılmalı?

  • Aynı kod üç kez tekrar ettiğinde (Rule of Three)
  • Fonksiyon çok uzun olduğunda
  • Sınıf çok fazla sorumluluk taşıdığında
  • İsimlendirmeler artık amacı yansıtmadığında
  • Yeni özellik eklemek zorlaştığında

Yaygın Refactoring Teknikleri

  • Metod Çıkarma: Uzun fonksiyonlardan mantıksal bölümleri ayırma
  • Değişken Yeniden Adlandırma: Daha açıklayıcı isimler verme
  • Koşul İfadelerini Sadeleştirme: Karmaşık if-else yapılarını basitleştirme
  • Nesne Oluşturma: İlişkili verileri bir nesne altında toplama

Kod Kokuları (Code Smells)

Kod KokusuBelirtisiÇözüm
Uzun MetodFonksiyon 30+ satırMetod çıkarma
Tanrı SınıfıBir sınıf her şeyi yapıyorSorumluluk ayırma
Tekrarlayan KodAynı mantık birden fazla yerdeDRY prensibi uygulama
Sihirli SayılarAçıklanmamış sabitlerAnlamlı sabit tanımlama
Ölü KodKullanılmayan kod parçalarıTemizleme ve silme
Aşırı YorumKodu açıklamak için çok fazla yorumKodu kendini açıklayacak şekilde yeniden yazma

Test Edilebilir Kod Yazma

Temiz kod, test edilebilir koddur. Test edilebilir kod yazmak için:

  • Bağımlılıkları enjekte edin (Dependency Injection)
  • Global durumdan kaçının
  • Fonksiyonları saf (pure) tutun
  • Soyutlamaları kullanarak mock'lanabilir yapılar oluşturun

Sonuç

Temiz kod yazma, sürekli pratik ve bilinçli çaba gerektiren bir beceridir. SOLID prensipleri, anlamlı isimlendirme, küçük fonksiyonlar ve düzenli refactoring ile kodunuzun kalitesini dramatik şekilde artırabilirsiniz. Ekolsoft olarak, temiz kod kültürünü benimseyen yazılım ekipleri ile sürdürülebilir ve ölçeklenebilir projeler geliştiriyoruz.

Bu yazıyı paylaş