Clean Code
Clean Code kavramı, Türkçeye “Temiz Kod” olarak çevrilir. Robert Cecil Martin'in "Clean Code: A Handbook of Agile Software Craftsmanship" adlı kitabında bu kavramdan ve kavramın ilkelerinden bahsedilmiştir. Bu kitaptan sonra da Clean Code kavramı yaygınlaşmıştır. Ancak, Clean Code kavramı ve ilkeleri çok daha eskidir.
Sanıldığının aksine Clean Code, katı kurallar içermez. Clean Code; insanlar tarafından anlaşılması ve değiştirilmesi kolay kod yazmayı ifade eden bir dizi ilkedir.
Anlaşılabilir kod yazmak, ister kodun geliştiricisi isterse de başka bir geliştirici tarafından kolayca anlaşılabileceği anlamına gelir. Tüm kodlar mantıklı ve açık bir şekilde yazılır. Kodun farklı bölümleri arasındaki bağlantılar açık ve nettir. Herhangi bir geliştirici tarafından her işlevin, yöntemin ve değişkenin görevi kolayca anlaşılır.
Clean Code’un Avantajları
Clean Codu’un sağladığı bir takım avantajlar vardır:
- Projede bir değişiklik istenmesi durumunda, gerekli değişiklikler hızlıca güncellenir.
- Clean Code’un; sorunları denetlemek, düzeltmek ve projenin devam etmesini sağlamak gibi bir takım avantajları vardır.
- Bir hata ile karşılaşıldığında kodda bulunan hatalar kolayca tespit edilir.
- Clean Codu’un bakımı çok kolaydır.
- Yöntemler öngörülür.
- Clean Code sayesinde iyi belgelenmiş API'ler (arayüzler) bulunur.
- Eski kodla çalışırken oluşabilecek sorunları önler.
- Daha az çabayla kod yeniden düzenlenir.
- Clean Code’un okunması kolaydır.
- Clean Code, test edilmiştir. Güvenli ve tamamen işlevseldir.
- Maliyet ve zaman tasarrufu sağlar.
Clean Code Neden Önemli?
Geliştiriciler tarafından anlaşılmayan kodlar zamanla maliyeti artırır. Clean Code yazmak, maliyet tasarrufu sağlar.
Geliştiriciler kodu anlamaya çalışırken zamanının çoğunu burada harcar. Bu zaman gelecekteki her görevinden gereğinden fazla saatler alır. Clean Code; güvenilirliği, esnekliği ve performansı artırır. Bu nedenle de yazılım dünyasında önemli olan bir konudur.
Geliştiriciler kodu yazmaktan çok okumakta zaman harcarlar. Geliştiriciler genellikle mevcut kodu anlamaya çalışmak yerine kodu yeniden yazmayı tercih eder. Bu da zaman kaybına neden olur. İyi yazılmış, test edilmiş ve anlaşılır kod yazmak için zaman ayıran bir geliştirici, ilerleyen zamanda sayısız saat, gün ve hafta kazanır. Bu nedenle, her geliştirici kodla ilgilenmeli ve mümkün olduğunca kodu anlaşılır hale getirmelidir.
Clean Code Yazmak
JavaScript, CSS veya Python; Backend veya Frontend geliştirme hangisi olursa olsun amaç Clean Code yazmak olmalıdır. Kodun anlaşılması dışında, sonraki aşamalarda yeni bir kod eklemeyi de sağlar. İyi yazılmış kod, daha iyi sonuçlar üretmeyi, uzun vadede maliyetten ve zamandan tasarruf sağlar.
Robert C. Martin’in yazdığı "Clean Code: A Handbook of Agile Software Craftsmanship" ve Dustin Boswell’in yazdığı "The Art of Readable Code" kitabı, daha metinsel kod biçimine odaklanırken; günümüzdeki Clean Code anlayışı daha geniş bir yaklaşım anlayışını benimsemiştir.
Çok sayıda ilke ve değer bulunur. Bu ilke ve değerler olmadan, yeni özelliklerin maliyeti katlanarak artar. Clean Code süreci için genellikle şu söz söylenir: Önce düşün, sonra kodlamaya başla!
Clean Code İlkeleri Nedir?
Clean Code nasıl yazılır? Clean Code yazarken, yol gösterici birkaç temel ilke bulunur. Bu ilkeler şunlardır:
- Basit kod yazmak
- Gereksiz tekrarlardan kaçınmak
- Gerekli olmayanı silmek
- Okunabilir kod yazmak
Clean Code Değerleri
Clean Code; zaman, çaba, dikkat ve özen gerektirir. Clean Code yaklaşımı, dört temel değere dayanır:
- Geliştirme: Clean Code; ihtiyaçlara göre geliştirilebilir, uyarlanabilir ve genişletilebilir. Clean Code koşullara kolayca uyum sağlamalıdır.
- Doğruluk: Doğruluk değeri, işlevlerin doğru yürütülmesini, sınıfların ve yöntemlerin doğru kullanılmasını ve gereksinimleri ele alır.
- Verimlilik: Okunması, değiştirilmesi, genişletilmesi veya bakımı kolay olan kod, geliştirme süresini kısaltır ve verimliliği artırır. Verimlilik değeri, yazılım geliştirmedeki çaba ve maliyetler üzerinde durur.
- Sürekli iyileştirme: Sürekli iyileştirme değeri, projelerde ve kod satırlarında hangi iyileştirmelerin yapılması gerektiği konusu üzerinde durur.
Clean Code Nasıl Yazılır?
1. Kuralları adlandırın
Clean Code yazarken her yazılımcının değişkenleri anlamasını sağlayan kurallar oluşturmak ve bunları not almak ilk ve en önemli adımdır. Kısaca bir Clean Code el kitabı oluşturmak gerekir.
Burada dikkat edilmesi gereken konu, herkese uyan tek bir yaklaşımın olmamasıdır. Herkes kendi sistemini bulmalıdır. Ekipçe çalışırken, Clean Code oluşturmak için tüm ekip üyelerinin anlayabileceği bir kural oluşturmak gerekir. Bunun için tüm geliştiriciler bir araya gelmelidir.
İpuçları:
- Tek karakterli değişkenler kullanmayın.
- Değişken isimlerini kısaltmayın.
- Tutarlı olun.
2. İşlevleri basit hale getirin
Clean Codu’un bir diğer aşaması, işlevleri küçük ve anlaşılır olacak şekilde basitleştirmektir. Bu işlevlerin, ne yaptığını ve amacını açıklayan bir ismin de konulması gerekir.
İpuçları:
- İşlevleri kısa bir adla özetleyin.
- Gerektiği durumlarda bir işlevi birden çok işleve ayırın. Uzun ve karışık isimler kodun bulunmasını zorlaştırır.
- Komut ve sorgu işlevleri farklı işlevler olmalıdır. Yani aynı işlevi hem komut hem de sorgu işlevi yapmayın.
- Bağımsız değişken sayısını sınırlayın.
3. Yorum satırını dikkatli oluşturun
Yorum, bir kod satırının ne yaptığını açıklamak için değil, bir kod parçasının neden oluşturulduğunu açıklamak içindir. Açıkça tanımlanmış bir yorum satırı Clean Code için önemli bir unsurdur.
Kurallar ve işlevler iyi adlandırılmışsa yoruma gerek kalmayabilir. Yani her kod satırı için yorum oluşturmak her zaman için gerekli olmayabilir. Gereksinim duyulabilecek durumları önceden tahmin etmek gerekir. Gereksiz yorumlar eklemek geliştiricinin zaman kaybetmesine neden olabilir.
İpuçları:
- Bir davranışı açıklamak için yorum kullanmayın.
- Yorumların doğruluğunu kontrol edin ve güncellemeyi unutmayın.
4. Test etmeyi unutmayın
Clean Code yazmak için bir diğer önemli konu, testtir. Test etmek, kodu geliştirmeye katkı sağlar.
İpucu:
- Aynı anda birden fazla kavramı değerlendirmeyin.
- Eski kodları test etmeyin.
- Testleri basit ve tekrarlanabilir olacak şekilde oluşturun.