Clean Code Prensipleri: Okunabilir ve Sürdürülebilir Kod Yazımı

z

zafer ak

Yazar

16 November 2025 2 dakika okuma 2 görüntülenme
Clean Code Prensipleri: Okunabilir ve Sürdürülebilir Kod Yazımı
Clean code prensipleri, SOLID, DRY, KISS ve kod kalitesi. Refactoring teknikleri ve code smell'ler.

Clean Code Nedir?

Clean code, okunması, anlaşılması ve değiştirilmesi kolay koddur. Robert C. Martin'in (Uncle Bob) tanımıyla "elegant and efficient" olmalıdır.

Temel Prensipler

1. Anlamlı İsimlendirme

// Kötü
$d = 30;
function p($x) {}

// İyi
$daysSinceCreation = 30;
function processPayment($order) {}

2. Fonksiyonlar Küçük Olmalı

// Kötü - 100+ satır fonksiyon

// İyi - tek bir iş yapan fonksiyonlar
public function processOrder(Order $order): void
{
    $this->validateOrder($order);
    $this->calculateTotals($order);
    $this->processPayment($order);
    $this->sendConfirmation($order);
}

3. Tek Sorumluluk (SRP)

// Kötü
class User {
    public function save() {}
    public function sendEmail() {}
    public function generatePDF() {}
}

// İyi
class User { public function save() {} }
class UserMailer { public function send() {} }
class UserReportGenerator { public function generate() {} }

SOLID Prensipleri

  • Single Responsibility: Bir sınıf tek bir neden için değişmeli
  • Open/Closed: Extension'a açık, modification'a kapalı
  • Liskov Substitution: Alt sınıflar üst sınıf yerine kullanılabilmeli
  • Interface Segregation: Küçük, specific interface'ler
  • Dependency Inversion: Abstraction'lara bağımlı ol

DRY (Don't Repeat Yourself)

// Kötü - tekrar eden kod
$userTotal = $user->orders->sum('total');
$adminTotal = $admin->orders->sum('total');

// İyi - extract method
private function calculateOrderTotal($person): float
{
    return $person->orders->sum('total');
}

KISS (Keep It Simple, Stupid)

// Kötü - gereksiz karmaşık
$result = array_map(function($x) {
    return array_filter($x, fn($y) => $y > 0);
}, array_chunk($data, 10));

// İyi - basit ve anlaşılır
$chunks = array_chunk($data, 10);
$result = [];
foreach ($chunks as $chunk) {
    $result[] = array_filter($chunk, fn($v) => $v > 0);
}

Code Smells

  • Long methods (>20 satır)
  • God classes (çok fazla sorumluluk)
  • Feature envy (başka sınıfın verisini çok kullanma)
  • Duplicate code
  • Dead code
  • Magic numbers

Refactoring Teknikleri

  • Extract Method: Kod bloğunu fonksiyona taşı
  • Extract Class: Sorumlulukları ayır
  • Rename: Daha anlamlı isimler
  • Replace Conditional with Polymorphism

Yorum Yazımı

// Kötü - ne yaptığını anlatan
// i'yi 1 artır
$i++;

// İyi - neden yaptığını anlatan
// Rate limit aşımını önlemek için bekleme
sleep(1);

Sonuç

Clean code yazmak, başlangıçta daha fazla zaman alır ama uzun vadede maintenance maliyetini dramatik şekilde azaltır.

İlgili Yazılar