Temiz ve Kaliteli Kod Nasıl Yazılır? ya da Temiz ve Kaliteli Kodun Temel İlkeleri

Bugünlerde temiz ve kaliteli kod yazma üzerine düşünmekteyim. (Aslında temiz ve kaliteli kelimelerini bundan sonra birbiri yerine geçecek şekilde kullanacağımı şimdiden belirteyim.) Bu konuda her zaman düşünüp, bildiklerimi ve çıkarımlarımı paylaşıyorum ama bu sefer daha formal bir çalışma yapıp, düşündüklerimi bir çerçeveye oturma ihtiyacı doğdu. Bu çalışmayı her ne kadar Java tabanında yapacak olsam da hemen her türlü programlama diliyle uğraşanları ilgilendirecek şeylerden bahsedeceğim. Örneğin bu çalışma C gibi prosedürel dillerle uğraşanlara faydalı olacağı gibi, C++, C# vb. nesne-merkezli dillerle uğraşan kişiler kesinlikle çok daha fazla fayda edineceklerdir. Açıkçası bu çalışmanın Java ile alakası, çoğu zaman sadece örnekler seviyesinde olacaktır.

“Temiz ve Kaliteli Kod Nasıl Yazılır” ile ilgili süreçte ilk olarak bir önceki yazıda “JavaTürk Java Kod İsimlendirme ve Şekil (Format) Standardı“nı yayınladım.

Temiz ve kaliteli kod yazmak, isimlendirme ve şekil standartlarına uymakla başlar belki ama bundan çok daha fazlasıdır. İsimlendirme ve şekil standartları, kaliteli kod için “şekil” yönünden gereklilik olabilir. Ama içerik olarak kaliteli kod yazmaya odaklanmak, şekil standartlarından daha önemlidir. Zira, içerik açısından kalite aslen pek çok defa dilden bağımsız, en az bir dil ailesine, çoğu zaman da her türlü programlama faaliyetine uygulanabilecek evrensel prensiplerden oluşur.

Ben hem şekil hem de içerik açısından kendimce bir çerçeve (framework) kurguladım. Bu çerçeveyi Java özelinde kurgulamama rağmen hemen her prensibi nesne-merkezli dillere, örneğin C++, C#, hatta pek nesne-merkezli olmayan dillere bile uygulanabilir. Bu çerceve aşağıdaki çizimde kısaca ifade edilmiştir:

Kaliteli Kod Nasıl Yazılır

Yukarıdaki çizimden de anlaşılacaği gibi oluşturduğum çerçeveye göre kaliteli kodun dört sıfatı ya da özelliği vardır:

  • Basit. Kaliteli kod her şeyden önce basittir, olabileceklerin en basitidir. Dolayısıyla daima “en basiti bu mudur?” diye sor kendine.
  • Odaklı. Her yazılan kod parçasının sadece ve sadece tek bir amacı olsun. Birden fazla amacı hiç bir yerde bir araya getirme.
  • Tam. Ne eksik ne fazla, sadece ihtiyaç için kod yaz, başka hiç bir şey yazma. İhtiyaçla ilgili ne varsa yaz, ilgisiz olan hiç bir şeyi yazma.
  • Güvenilir. Sadece normal durumları değil, anormal durumları da düşün. Hatalı halleri görmezden gelme.

Bu yazıda bu dört özelliği bir başka deyişle dört ilkeyi hızlıca özetleyip sonraki yazılarda her birini tek tek ele alacağım:

Basit kod en temelde anlaşılır koddur. Basit kod, hem şekil hem de içerik açısından rahat anlaşılır, gözü ve zihni yormaz. Bu anlamda basit olmanın şekil şartı isimlendirme ve şekil standartlarına uymaktır. Öte taraftan basit kod elde etmek için içerik olarak da basit kod yazmak gereklidir. Bu da hem odaklı hem de kısa kod yazmakla gerçekleşir.

Odaklı kod, hem basit kodun bileşenidir hem de kendi başına ozelliklere sahip olduğundan apayrı bri şekilde ele alınması gereken bir ilkedir. Odaklı olmanın iki yüzü vardır: Bir yerde sadece bir şeyi halletmek, bir şeyi sadece bir yerde halletmek.

Tam kod, ne eksik ne fazla, sadece istenilenin yapıldığı, istenilen, beklenen, ihtiyaç duyulan dışında hiç bir fazla ya da eksik bir şeyin yapılmadığı koddur.

Güvenilir kod ise sadece olması gerekeni yapmaz. Güvenilir kod olması gerekn yanında olmaması gerekenin olmayacağından emin olur, olabilecek olanları da göz önüne alır. Bu anlamda güvenilir kod, bir ihtiyacı her yönüyle halleder.

Güzel kod ya da şiir gibi kod yazabilecek kadar iyi programcı olabilmek dileğiyle…

Toplam görüntülenme sayısı: 3764