Clean code nedir?

Kadir Çolak
3 min readSep 22, 2020

--

Merhabalar. Yazılım konusunda çoğu yerde duyduğumuz ve yapmamız gereken bir kavramdan örneklerle bahsedeceğim.. İngilizce tabiriyle Clean Code, Türkçesiyle temiz kod nedir? Ne işe yarar ve yapılması şart mıdır? Fazla detaylarda kalmadan direkt konuya giriş yapalım. Hadi gelin..

Clean code ilkesini yazdığı kodlara uygulamaya çalışan kişi
Clean code nedir?

Programlama diliniz ne olursa olsun yazılımın özü koddur. Kodun özü de anlaşılabilir ve takım ekipleri tarafından yorumlanabilir ve geliştirilebilir olmasıdır. Peki bir kod nasıl anlaşılır olur? Daha ben doktorun yazdığı ilacı okuyamıyorum da bir başkasının kodunu sular seller gibi mi okuyacağım.

Kod şiir gibi kelime odaklı okunmaz, makale gibi giriş, gelişme ve sonuç bazlı parçalanarak okunur. Bu aşamada da ne kadar gereksiz satır varsa, ismi anlaşılmayan değişken varsa, kullanılmayan sınıf varsa çöpe atmak en doğrusu olacak. Temizliği kadar yazılımın hızlı çalışması da bizim için önemli bir parametre ne de olsa.

Örneklerin herkes tarafından kavranabilmesi için C# dilinde Console Application yapısıyla açıklama yapmayı tercih ediyorum. Ne de olsa temiz kod herkesin anladığı kod değil mi?

Değişken isimleri anlaşılır olmalı

Siz gidip de birine “x değeri 0 döndü, bu yüzden işlem yapamaz” derseniz ne olur. Bir de aynı cümleyi “anapara değişkeni 0 döndü. bu yüzden işlem yapamaz” şeklinde derseniz ne olur. Sadece bir değişken adı değişmiş gibi görünse de arka planda büyük bir fark olduğu aşikar.

Yukarıdaki örnek hatalı bir kodlama çünkü değişkenlere isim olarak x ve y vermiş. Nedir bu x? ne işe yarar bu y? Bunu o yazılımı kodlayandan başkası bilemez. Değişkenler gerekirse uzun ama anlaşılır bir isimle anılmalıdır.

Gereksiz kodlar olmamalı

Az ve öz kod her zaman aranan bir özelliktir. Bir işi 50 kodla da çözebilirsiniz, 250 kodla da. İki sonuç da aynı ise ya da birbirine çok yakın durumsa tabi ki daha az yazılmış kod tercih edilir.

Önceki koda kıyasla sadece goto fonksiyonu eklenmiş gibi duruyor ama sadece bu fazlalık yok. Bu senaryoda iki ihtimal var ve ikisi için de goto ile if-else kontrolünden çıkmaya gerek yok. Bununla birlikte if-else koşulları sağlanınca yapılan işlemler tek satırda yapılabiliyorsa { ve } parantezlerini açmaya da gerek yok.

Yorum satırları eklenmeli

Teknik anlamda her hazırlık tamam desek bile unuttuğumuz bir şey var. Algoritma ve değişkenler arası ilişki kurmada nasıl bir yol izleneceği, bu konuda da yazılımcılar gerek duyulan satırların sonuna veya altına yorum satırı ile orada gerçekleşen işlemi anlatmalıdır. Bu hem takım içi hem de gerektiğinde dışarıdan bir kişiye gidildiğinde verimlilik sağlayacaktır.

Kod yazanlara selam olsun. Temiz veya kirli kod farketmez de kod yazmaya devam edin, bu sayede kodunuz illa temizleşecektir. Benden söylemesi..

--

--