Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Temiz Kod Yazma | BÖLÜM-1 : Giriş ve Anlamlı İsimlendirme

Hazır fonksiyonlar, kütüphaneler, düzenleme programları/araçları/gereçleri, editörler kısacası geliştirme ortamı

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Temiz Kod Yazma | BÖLÜM-1 : Giriş ve Anlamlı İsimlendirme

Mesaj gönderen amad »

Merhabalar arkadaşlar, bu yazımda uzun zamandır aklımda olan seriyi yani "Temiz Kod Yazma" serisini parça parça ilerleyerek ele alacağım. Detaylara girmeden önce temiz kod yazmanın önemini sizlerle paylaşmak istiyorum.
Temiz kod yazmanın önemi, en çok geniş kapsamlı ve büyük eklentilerde karşımıza çıkıyor. Ben Jailbreak üzerine eklentiler geliştirdiğim için karşılaştığım bu tarz etkinlikler jbmenu, ctmenu veya amxsuper vb oluyor. Bir jbmenüyü ele alacak olursak; birçoğumuz başlayıp yarıda bırakıyoruz, tamamlayıp sorunsuz bir şekilde paylaştıklarımızın sayısı çok az, sürüm güncelleştirmeleri az sayıda ve uzun zamanda gerçekleşiyor... Bu tarz sonuçlara her ne kadar diğer sebeplerin etkisi olsa da en büyük sebep temiz kod yazmamamızdır. Eklentilerimizi temiz bir şekilde çıkardığımızda sadece bize değil kodu inceleyen, geliştirmek isteyen herkese büyük katkı sağlayacaktır. Peki nasıl temiz kod yazabilirim diyorsanız hiç durmadan aynı hızla okumaya devam edin.



Bölüm - 1 : Anlamı İsimlendirme

"İyi isim seçmek zaman alır, ancak uzun vadede daha çok zaman kazandırır."

Sanırım birçoğumuz yaşamıştır. Herhangi bir eklentiyi veya kodu açarız. Daha kodun ilk satırlarındayken değişkenin ne işe yaradığını çözmeye çalışırız. Aynı durum fonksiyonlar için de geçerli hem de daha kötü haliyle. Peki nasıl mı ? Fonksiyonun amacını, işleyiş mantığını çözerek anlarız. Oysa anlamlı bir isim verilmiş olsaydı hem zamanımız boş yere gitmemiş olacaktı hem de boşa kafa yormayacaktık. Gelin örneklerle konuyu daha detaylı bir şekilde ele alalım.

Kod: Tümünü seç

new x;
Üstteki kod size ne çağrıştırıyor? Bunu sadece bu satıra bakarak anlamak imkansız. O halde biraz daha ekleme yapalım.

Kod: Tümünü seç

new x; // Bir raundun süresi
Bu daha açıklayıcı oldu. Peki sizce yorum satırına gerek var mıydı? Değişken adıyla da bu tanımlamayı yapamaz mıydık?

Kod: Tümünü seç

new roundTime;
new roundSuresi;
Böyle bir kullanım tabii ki de en iyi değişken kullanımı olacaktır.

Yine en çok yapılan hatalardan biri de sayi1,sayi2 ... tarzı isimlendirmeler. Buna örnek olarak da iki değişkenin değerleri arasında bir swap yani takas işlemini verebiliriz. Burada izleyeceğimiz yol: İlk sayının değerini geçici bir değişkende tut. İkinci sayıyı, ilk sayının içine al. Geçici olarak tuttuğum sayıyı da ikinci sayının içine al. Şeklindedir. Bu iki sayıyı isimlendirirken kaynak, hedef tarzında isimlerin verilmesi daha kullanışlı olacaktır.

Kod: Tümünü seç

new kaynak = 5;
new hedef = 10;
new gecici = kaynak;
kaynak = hedef;
hedef = gecici;
Eğer bunu bir fonksiyonda yazmak istersek de aşağıdaki gibi bir kodlama işimizi görecektir.

Kod: Tümünü seç

public sayiTakas(kaynak, hedef) {
	new gecici = kaynak;
	kaynak = hedef;
	hedef = gecici;
}
Bu yazı, yazılım dünyasının tecrübeli ismi olan Robert C. Martin'in Clean Code kitabından esinlenilerek yazılmıştır.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

By.King ►EmrullaH◄
Yasaklı Üye
Yasaklı Üye
Mesajlar: 4297
Kayıt: Cmt Şub 24, 2018 6:05 pm
Konum: İstanbul
İletişim:

Temiz Kod Yazma | BÖLÜM-1 : Giriş ve Anlamlı İsimlendirme

Mesaj gönderen By.King ►EmrullaH◄ »

@amad
Bu seri kaç adet olacak ve ne kadar arayla atacaksın acaba ?

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Temiz Kod Yazma | BÖLÜM-1 : Giriş ve Anlamlı İsimlendirme

Mesaj gönderen amad »

2 ya da 3 tane daha bölüm eklemeyi düşünüyorum. Bölümlerin ne sıklıkla geleceği de ilgiye göre değişir. En kötü bir haftaya diğer bölümleri de paylaşırım.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

ADOW
Yasaklı Üye
Yasaklı Üye
Mesajlar: 1089
Kayıt: Cum Ara 22, 2017 6:14 pm
Konum: Konum yok
Server Ip/DNS: cs.gokturkgaming.com
Clan İsmi: ɢoĸтυrĸ
İletişim:

Temiz Kod Yazma | BÖLÜM-1 : Giriş ve Anlamlı İsimlendirme

Mesaj gönderen ADOW »

amad yazdı: Cum Haz 07, 2019 5:28 pm 2 ya da 3 tane daha bölüm eklemeyi düşünüyorum. Bölümlerin ne sıklıkla geleceği de ilgiye göre değişir. En kötü bir haftaya diğer bölümleri de paylaşırım.
bu gidişle bizde bişyler ögreniriz tesskür ederim çok faydalı oldu :)

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Temiz Kod Yazma | BÖLÜM-1 : Giriş ve Anlamlı İsimlendirme

Mesaj gönderen amad »

ADOW yazdı: Cum Haz 07, 2019 5:46 pm bu gidişle bizde bişyler ögreniriz tesskür ederim çok faydalı oldu :)
Rica ederim. Artık konularımı daha çok eklenti yazarlarına yönelik açmayı düşünüyorum.

Link:
Linklerini gizle
Linki Kopyala
Cevapla