Temiz Kod Nasıl Yazılır?


Selamünaleyküm / Aleykümselam

Mimar Aslan’ın düzenlediği Bilişim Sohbetleri’ni bilenleriniz vardır.
Bilişim alnında uzman kişilerle her hafta sohbet yapılır, farklı konular ele alınır, bizlerde bilgileniriz.

Akın Kaldıroğlu ile yapılan Clean Code (Temiz Kod) sohbetini dinledim.
Sohbette Mimar Aslanın şu sözü dikkatimi çekti : "Hayatımda sadace bir kez en baştan kod yazdım."

Bu ne demek oluyor?

Bizler yarın öbürgün iş hayatına girdiğimizde bize sıfırdan al şu programı yaz demeyecekler.
Yazılmış bir kodu düzenlicez, geliştircez vs.

Peki burda karşımıza çıkacak en büyük sorun nedir? Kodu anlamakta zorlanmak.

Bende çok kez bu duruma düştüm, kodu düzenlemek için aldığımda en baştan incelemek zorunda kalıyorum, burda ne yapmış, bu ne demek vs. kodu düzenlemeyi bırak, konu anlamak uzun bir zaman alıyor. 

Durum aynen bu..




Peki bunun sebebi nedir? Temiz kod yazamamak.

Evet istenilen kodu bir şekilde yazabiliriz, öyle böyle o kod çalışır ama yazdığımız kodu başkası okuduğunda "bu ne la?" diyorsa o kod temiz yazılmış, açıklayıcı bir kod değildir. İş hayatında bize bir kod verildiğinde o kodu yazan kişinin adını anmıyorsak o kod güzel yazılmıştır.



Anlaşılır, temiz kodu nasıl yazarız?


Klasör yapısı


Misal web programlama yapıyorsak öncelikle klasör yapılarını planlamak gerekir. Hem html sayfamız, hem css/js dosyalarımız, hemde resimler vb aynı klasör içindeyse bırakın kodu, klasörde bile bir şey arayıp bulmak çok zor olacaktır.

Bunun için öncelikle klasör yapımızı oluşturmamız gerekir. Misal..




Yorum satırları


Yorum satırları sanırım kod yazarken en iyi dostumuz, kod okurkende en iyi yardımızdır. 
Bir fonksiyon tanımladık kodları yazdık program çalıştı. Peki 2 ay sonra o kodu okuduğumuzda veya başkası incelediğinde "bu fonksiyon ne yapıyor ya?" dememek için yorum satırlarını sürekli olarak kullanmalıyız. Fonksiyonun başına //bu fonksiyonun görevi şudur, geriye bunu döndürür vs yorumlar bırakmamız gerekir.


Değişken isimlendirmeleri


Kod yazarken sürekli değişkenler kullanıyoruz. İlk başladığım zamanlarda zaman kaybetmemek için int a,b,c,i,j; diye tanımlardım. Kod çalışsın, işimi görsünde yeter gibisinden. Fakat aradan 1 hafa geçse ve kodu açsam a diye tanımladığım değişkenin işi ne, ne yapıyor, ne bu gibi sorularla bug’da kalmamak için değişkenleri hangi amaç için oluşturduğumuzu anlaşır biçimde tanımlamak gerekiyor.

int a,b,c;

int sayi1, sayi2, toplam;

gibi..



Yazım standartları


Herkesin belli başkı yazım standartları vardır, bunlar kod yazdıkça kendiliğinden oluşur ve bu şekilde yazmaya devam ederiz.
Mesela ben C#’ta form application çalışırken araçlarıma textBoxAd, txtBoxYas, comboboxOkul gibi isimler veririm. Form’larıma frmAnaForm, frmAdminPaneli, frmSqlInjection gibi isimler veririm, ki ne oldukları belli olsun, kod yazarken bana zaman kazandırsın diye.

textbox yazdığım gibi karşıma textboxad, textboxyas vb tüm textbox’lar sıralanacak. Ve kodu okuyan kişi textbox1.text’i gördüğünde bu hangi textbox acaba diye dönüp form’a bakmamasını sağlayacak.


Ve okunabilirlik açısından mesela toplama işlemi yapan bir fonksiyonun adını yazarken ilk harf küçük ardından gelecek olan kelimelerin baş harflerini büyük yazmakta fayda var. Hatta fonksiyonların başına _ koymakta o fonksiyonları çağırırken adı neydi ya demekten bizi kurtarır.

_ yazdığımız gibi önümüze projede ki tüm fonksiyonlar sıralanacaktır.

Örnek bir fonksiyon tanımlaması

_ToplamaIslemi(int sayi1,sayi2){
toplam = sayi1 + sayi2;
return toplam;
}


Her fonksiyonun bir amacı olmalıdır. Bir fonksiyonla ben her işimi halledebilirim mantığı yanlıştır. Halledemez misin? Zorlarsan hallolur, ama bir hata çıktığında acaba nerde diye aramak zorunda kalırsın. Kodu okuyan kişi ne yapmış la bu diye anlamak zorunda kalır.




Kod içerisinde bazı şeyleri sürekli tekrarlıyorsak bunları bir fonksiyon ile halletmeye çalışmalıyız. Hem satır tasarrufu yapmış oluruz, hemde zaman kazanırız.


Kodu yazan her yazılımcı, aslında bir başka programcının yazdığı kodun okuyucusudur. Bir gün yazdığınız kod mutlaka başkalarının eline ulaşacak ve o kodlar okunacak, anlaşılmaya çalışılacak.


Sıkça görmüşsünüzdür Nasıl Bulmak İstiyorsanız Öyle Bırakın diye, tıpkı o misal..





Adsız

Phasellus facilisis convallis metus, ut imperdiet augue auctor nec. Duis at velit id augue lobortis porta. Sed varius, enim accumsan aliquam tincidunt, tortor urna vulputate quam, eget finibus urna est in augue.

Hiç yorum yok:

Yorum Gönder