Clean Code kavramı bazen çok akademik ve karmaşık anlatılıyor. Ben bunu, gerçek projelerde uyguladığım birkaç basit, somut kurala indirgemeyi tercih ediyorum.
İsimlendirme: Yorum Yazmaya Gerek Bırakmamak
var d yerine var orderCreationDate yazmak, kodu okuyan birinin bir değişkenin ne olduğunu anlamak için yorum satırına ihtiyaç duymasını engelliyor. İyi bir isim, en iyi yorumdan daha değerlidir.
Fonksiyonları Küçük Tutmak
Bir fonksiyon 50 satırı geçtiğinde, genelde birden fazla iş yapıyor demektir. Fonksiyonu, her biri tek bir işi yapan daha küçük fonksiyonlara bölmek, hem okunabilirliği artırıyor hem de test edilebilirliği kolaylaştırıyor.
İç İçe Geçmiş if'lerden Kaçınmak
Üç-dört seviye iç içe geçmiş if blokları, kodu takip etmeyi zorlaştırıyor. Erken dönüş (early return, guard clause) kullanmak, kodun karmaşıklığını gözle görülür şekilde azaltıyor:
// Kaçının
if (order != null) {
if (order.IsValid) {
// işlem
}
}
// Tercih edin
if (order is null || !order.IsValid) return;
// işlem
Yorumları Açıklama İçin Değil, Gerekçe İçin Kullanmak
"Bu kod X yapıyor" diye açıklayan yorumlar genelde gereksiz — kod zaten bunu söylüyor olmalı. Bir yorumu ancak "neden böyle yaptım" (örneğin bir workaround'un gerekçesi) sorusuna cevap verirken yazıyorum.
Tutarlılık, Mükemmellikten Önemlidir
Bir ekipte herkesin farklı bir stil kullanması, tek bir "en iyi" stilin herkes tarafından takip edilmesinden daha kötü. Bu yüzden bir stil belirledikten sonra (linter/formatter ile otomatikleştirerek), tartışmayı bırakıp tutarlılığa odaklanıyorum.
Sonuç
Clean code, karmaşık teorilerden çok, "bu kodu 6 ay sonra biri (ya da ben) anlayabilir mi?" sorusuna sürekli evet cevabı verebilmekle ilgili. Basit ama tutarlı uygulanan birkaç kural, çoğu zaman en gelişmiş tasarım desenlerinden daha fazla değer katıyor.