Bir kod parçasının çalışmasını artık istemiyorsanız, en iyi yöntem onu silmektir. Bazı yazılımcılar, artık çalışmasını istemedikleri bu kod parçasını aşağıdaki şekilde yorum içerisine alıyorlar. Çoğu zaman bunun sebebi, o kod parçasını kaybetmekten korkmak oluyor. Halbuki bir versiyon kontrol sistemi (örneğin git) kullanıyorsanız, o kod parçasına her zaman ulaşabilirsiniz.

Versiyon kontrol sistemleriyle bir kodu geri getirebilme olanağımız dışında, bir kodu yorum içerisine almamak için kendi tecrübelerimden verebileceğim örnekler de var. Kariyerim boyunca ne zaman bir kodu devre dışı bırakmam gerekse, belki de bu durumların %99’unda o koda bir daha ihtiyaç duymadım. Ya daha iyi bir kod parçası yazdığım için eskiyi devre dışı bıraktım ya da artık o özelliğe ihtiyaç duymadım.

Yazılım, her gün gelişen bir alan. Kodunuzu silmekten korkmayın. Hatta ve hatta, bir proje içerisinde başka yazılımcılarla birlikte çalışıyorsanız, başkasının yorum içerisine aldığı kodu silmekten de korkmayın. Böyle yorumlar bize yarardan çok zarar getirir.

Örnek

<?php

class Book // Kitap
{
   // getTitle: Başlığı al
   public function getTitle(): string
   {
      //return DB::table('books')->where('id', $this->id)->first()->title;
      return $this->title;
   }
}

Yorum içerisine alınmış kodu fark ettiniz mi? Belli ki, kitap başlığını almak için daha önceden direkt olarak veritabanı bağlantısı kuruluyormuş. Fakat sonradan bu fonksiyon Book sınıfı (class) içerisine alınmış ve başlığa direkt olarak $this->title şeklinde bir ORM kullanılarak ulaşılabiliyor.

Temizlik zamanı

Yorum içerisine alınmış koda ihtiyacımız yok. Üstelik kitap başlığını almak için yöntemimizi bile değiştirmişiz; üstteki kodu kullanmanın hiçbir mantığı kalmamış.

Belki de yazılımcı, bir ORM kullanmadan kitap başlığına nasıl ulaşacağını hatırlamak istediği için bu kodu yorum içerisine almış. Fakat bu artık Book sınıfıyla ilgili bir kod parçası değil. Belli ki artık projeyle dahi alakası kalmamış.

<?php

class Book // Kitap
{
   // getTitle: Başlığı al
   public function getTitle(): string
   {
      return $this->title;
   }
}

Alıntı

Bu konu hakkında Robert Martin çok güzel yazmış:

Yorum içerisine alınmış kod parçaları görmek beni çılgına çeviriyor. Ne kadar eski olduğunu ya da bir anlam ifade edip etmediğini kim bilir? Yine de kimse bu kod parçasını silmiyor çünkü herkes bir başkasının bu bilgiye ihtiyacı olacağını ya da birilerinin bununla ilgili bir planı olabileceğini varsayıyor.

Oysa o kod parçası sessizce orda yaşamaya devam ediyor; zaman geçtikçe çürümeye başlıyor ve günbegün kodun geri kalanıyla olan ilişkisi azalıyor. Çağırdığı fonksiyonlar artık yok. Kullandığı değişkenlerin çoktan adı değiştirilmiş. Yazıldığı standartlar artık kullanılmıyor. İçinde bulunduğu modülleri kirletmekten ve onu okuyan insanların dikkatini dağıtmaktan başka bir işe yaramıyor. Yorum içerisine alınmış kod parçası, rezillikten başka bir şey değil.

Clean Code, Robert C. Martin

Sonuç: Eskimiş kodunuzu yorum içerisine almayın. Silin gitsin!

Yorum Gönderin

Bir Cevap Yazın

%d blogcu bunu beğendi: