Ana içeriğe atla
18 Mayıs 2020

Temiz Kod İçin Basit Kurallar

glass

Biz yazılımcılar iş hayatımızda karşılaştığımız problemleri genelde kod yazarak çözeriz. Bilgisayara çalıştırmak istediğimiz kod parçasını verir ve bir çıktı üretmesini bekleriz. Çıktı beklediğimiz şekilde oluştuysa sorun yok demektir. Peki ama bilgisayar, gerçekten ondan istediğimiz şekilde davrandığında sorun kalmamış mı oluyor?

Aslında burada temel mesele işi çözmüş olmamızdan ziyade işi nasıl çözdüğümüz. Evet yazdığımız kod parçası sorunumuzu çözüyor ve günü kurtarıyor olabilir fakat gelecek için üstümüzde bir yük olacak mı, yani ben bu koda ileride tekrar baktğımda, burada ne yapmıştım diye üzerinde saatler düşünerek yazdığım kodu anlamaya mı çalışacağım veya takım arkadaşım benim yazdığım kodu anlamak için çift katlı integral çözmeyi bilmeli mi?

Bu gibi durumlarla karşılaşmamak için yazdığımız kodun temiz ve anlaşılır olması gerekir. Temiz ve anlaşılması kolay kod yazdığımızda, ne zaman dönüp bakarsak bakalım yazdığımız kodu anlamak veya koda yeni bir feature eklemek bizim için daha kolay olacaktır. Temiz kod yazımı için temelde bir kaç basit kuraldan bahsedilebilir. Şimdi bu kurallardan birkaçını kısaca inceleyelim:

1) Basitlik ve okunabilirlik

Yazılan kodun mümkün olduğunca basit bir şekilde kodlanması gerekir. Yani kodu yazarken çift katlı integral çözebilecek zekaya sahip olduğunuzu göstermeniz gerekmiyor, tam tersi ufak bir çocuğun bile anlayabileceği basitliğe indirgemeniz gerek. Böylece takım arkadaşınız kodunuzu rahatça okuyabilir ve anlayabilir.

2) Az kod

Bir işte olabildiğince az kod yazmak o kodu hiç şüpheniz daha okunabilir ve daha basit yapacaktır fakat burada az kod yazmanın başka bir faydasını daha unutmamak gerek: O da ne kadar az kod, o kadar az bug. Çünkü siz koda ne kadar daha kod eklerseniz, projenizde o kadar çok bug çıkma ihitmalini artırsınız.

3) İsimlendirme

Oluşturduğumuz fonksiyonlar ve değişkenler için anlaşılır isimler kullanmalısınız. Sadece kendinizin anlayacağı ya da ne iş yaptığını belirtmeyen isimlendirmeler mutlaka başınıza bela olacaktır. Bir fonksiyonun isminden o fonksiyonun ne iş yaptığı, bir değişkenin isminden de o değişkenin neyi temsil ettiği anlaşılmalı.

4) Fonksiyonalite ve kod tekrarı

Eğer projenizde aynı kod parçacığı birden fazla yerde kullanılıyorsa, o kod parçacığını fonksiyon haline getirin ve istediğiniz yerde o fonksiyonu kullanın. Çünkü code duplication, code base’inizi artıran bir şeydir. Code base’in artması hem complexity’e, hem modülerliğe zarar verir.

5) Modülerlik

Kodunuz 20 satırı geçmeyen fonksiyonlardan oluşmalı. Eğer bodysi 300 satırı bulan fonksiyon yazıyorsanız, yanlış yoldasınız demektir. Çünkü bir fonksiyonun bodysi ne kadar uzunsa o fonksiyonun anlaşılması o kadar zordur. 150. satıra gelindiğinde 20. satırda ne vardı diye düşünmek kimsenin istemeyeceği bir şeydir.

6) Yorum satırı

Nasıl ki kodumuzda gereksiz if else’ler olmamalıysa, gereksiz yorum satırları da olmamalı çünkü iyi bir kod esasında yorum satırına ihtiyaç duymayan koddur. Tabi ki bu hiç yorum satırı yazmayacağınız anlamına gelmiyor.


6 maddede kısaca özetlemeye çalıştığım şekliyle, temiz kod yazımına dikkat etseniz bile illa ki farkında olmadan complexity’i artırdığınız ya da okunabilirliğe engel kod parçaları yazdığınız zamanlar olacaktır. Bunun için de kodunuzu belli aralıklarla refactor etmelisiniz. Refactoring başlı başına ayrı bir yazıyı hakeden bir konu olduğu için oraya girmeyelim fakat kısaca refactoring bir nevi kodu bakıma almak demektir. Bu bakımlar hem gözünüzden kaçan kısımları düzeltmenize hem de kodunuzu maintain edilebilir bir hale getirmenizi sağlaycaktır.

Son söz olarak kod yazımında esas olay yazdığımız kodun basit,okunabilir ve maintain edilebilir olmasıdır.

BLOG YAZILARI

Diğer Blog Yazıları

Kubernetes Scheduler Nedir? - Bölüm 1

Çok farklı uygulamaların hepsinin aynı kümede uyum içinde çalışmasını sağlamanın yolu, her bir pod'un kendisine en uygun düğüme yerleştirilmesini sağlayan job scheduling'dir.

Yazıyı Oku

Kubernetes Scheduler Nedir? - Bölüm 2

Çok farklı uygulamaların hepsinin aynı kümede uyum içinde çalışmasını sağlamanın yolu, her bir pod'un kendisine en uygun düğüme yerleştirilmesini sağlayan job scheduling'dir.

Yazıyı Oku

Vue.js Unit ve e2e Testler

Mevcut özellikleri bozmadan güvenle yeni özellikler geliştirmenizi sağlar ve diğer geliştiricilerin bileşeninizin ne yaptığını anlamasına yardımcı olur.

Yazıyı Oku