“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.