Kod Yazmada Estetik Sanatı
Tarih
08/04/2012 15:07
Konu Sahibi
DUAYEN
Yorumlar
5
Okunma
2635
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



DUAYEN
Aktif Üye
Kullanici Avatari
Aktif Üye
S.... A....
1.026
13/08/2010
279
Yozgat
Ofis 2007
28/10/2016,11:41
Kodlarınızın güzel görünmesini ister misiniz?

Aslında kod yazmak bir sanat olduğu kadar onun görünümünü güzelleştirerek anlaşılır kılmak ta ayrı bir sanattır.
Kod yazarken ilk yazmış olduğunuz nesne ile ilgili kodlar en sona yazılır, ister istemez bir kural oluşur kod yazmada ilk giren son çıkar kuralı.

Bir de nesne veya kontrollerle ilgili kod yazarken en genel olanı ilk olarak yazmak daha doğru olacaktır. Mesela Label’e textboxlardaki bir şeyi hesaplattıracaksınız bunun için label nesnesinin olay yordamının içine yazmak icabeder.

Yani genelden özele doğru dizilim yapmaktır. Burada asıl amacımız hem estetik görünüm vermek, hem de kodların anlaşılır olabilmesini sağlamaktır. Bunu yapabilmek için ise :
1. Kontroller veya nesnelerin kodlarla ilişkisini sağlamak
(textbox, label, listbox, combobox, textbox, if, for vs…)

A) Hiyerarşik metot kullanarak estetik vermek
Tek ve önemli kural vardır bunda hiyerarşik dizilim metodunu kullanmalıyız.

Anlaşılabilmesi ve güzel görünebilmesi için bu bir altın kuraldır
Örneğin kodlarınızda,
If then Else komutlarını kullanacaksınız.

Kod:
If Range("A1") = 0 Then
 MsgBox "A hücresi sıfırdır"
End If


Tarzı kod yazma sanatını öneriyorum. If ve End If değimleri aynı hizadadır. Arada olan MsgBox deyimi ise bu kodun çerisinde işlem yapmakta olduğu için içeri doğru girintili yazılmıştır.

Kodlardan hiç anlamayan biri bile dışarıdan bakan biri If ve End If değimlerinin aynı hizada olduğunu görerek bu ikisi arasında bir ilişki başlangıç ve bitiş ilişkisi gibi bir bağlantı olduğunu sezecektir.
For Each döngüsü kullanacaksanız

Kod:
1
2
3
4
5
6
For Each Cell In Cells.SpecialCells(xlCellTypeComments)
 With Cell.Comment.Shape.TextFrame.Characters.Font
 .Size = 10
 .Bold = True
 End With
Next

Bu deyimin kullanımında dikkat edilmesi gereken estetik yazım kuralı ise For Each deyimi bitişi olan Next ifadesi aynı hizada olmalı, içerisinde kullanan diğer nesneler veya deyimler ise bunun içinde kalacak şekilde kendi aralarında hizalanmalıdırlar. With ve End With deyimi de aynı hizadadır.
For Next döngüsü kullanacaksanız

Kod:
For
 ……
Next

Yukarıdaki şablonu kullanabilirsiniz.

Nesnelere ait kodlar kullanacaksanız. (eğer nesne genellik içeriyorsa, içerisine girilecek kodlar ve kontroller içe doğru yazılmalıdır, bir nevi hiyerarşi)
B) Karakterleri kullanarak estetik vermek
ÖncelikleUserform veya modüldeki makroların başına ‘ tek tırnak işareti koyarak istediğiniz (nokta, harf veya karakterlerle) şekilleri yapabilirsiniz. Yazdığınız programın size özel olmasını istiyorsanız aşağıdaki resimdeki gibi bir çalışma yapabilirsiniz. Bunun yapabilmek içinde ‘ işaretini en başa yazmalısınız. Nasıl yazılıyor diye soracak olursanız, VBA’da iken Shift’e basılı tutun ve 2 ye basın.
Hocam niye tek tırnak?
Tek tırnak koyduğunuz zaman makro bunu göremez ve çalıştıramaz. Biz zaten makro veya kod yazmadığımıza göre rahatlıkla bu özelliğin tadını çıkartarak kullanabiliriz.

Ben kendim için aşağıda bir örnek yaptım.
2-
2. Karakterleri kullanarak neler yapabilirim
a) Girinti yapmak
b) Boşluk koymak
c) Yorum ve açıklama eklemek
d) Tavsiyeler
a) Girinti yapmak
Girintiler, boşluk karakteri kullanılarak yapılmalıdır. Tab karakteri kullanımı dosyaların boyutlarını küçültecek olmasına rağmen farklı metin editörleri ile açılacak olan dosyaların okunurluğunun azalma ihtimali yüksektir. Minimum 4 karakter girdi olmalıdır. Bu 4 karakter 4 tane Space tuşunu basılarak elde edilir. O da zaten 1 Tab’a eşittir (4 Space =1 Tab). Daha az olacak olan girdilerin insan gözü ile fark edilmesi zordur.
Aşağıdaki örnekte kaç Tab kullanılarak girinti yapıldığının bir örneği bulunmaktadır.

Kod:
1
2
3
4
5
6
7
8
 
i=Range("A1").End(xlDown) + 1
ıf i> 6500 Then i = 2
1 Tab Cells(i,1) = Textbox1
1 Tab + 1 Tab Cells(i,2) = Textbox2
1 Tab + 1 Tab + 1 Tab Cells(i, 3) = Textbox3
 Cells(i, 4) = Textbox4
Cells(i, 5) = Textbox5

Kod:
1
2
3
4
5
6
7
i = Range ("A1").end (xDown). Row + 1
if i > 6500 Then i = 2
Cells(i, 1) = Textbox1
 Cells(i, 2) = Textbox2
 Cells(i, 3) = Textbox3
Cells(i, 4) = Textbox4
 Cells(i, 5) = Textbox5

Bir satırda da insan gözünün algılayabildiği kadar yani en fazla 80 karakter olmalıdır.
b) Boşluk koymak
Kod blokları arasında mümkün olduğunca boş alanlar konarak okunurluk arttırılmalıdır. Özellikle ilişkisel olarak bir birinden bağımsız bloklar fazladan bir boş satır ile birbirlerinden ayrılırlar ise kod okunurluğu önemli oranda artacaktır.
Fonksiyon açıklamaları ile fonksiyon arasında bir satır boşluk olursa okunabilirliği arttıracaktır. Yani yazılan bir fonksiyonun kapanış bloğunun hemen alt satırından başka bir fonksiyonun açıklamasına başlanmamalı en az 1 satır boşluk bırakılmalıdır.
Yani siz bir çok işlevi yapan kodları aynı makronun içerisinde çalıştırmak istiyorsunuz diyelim. Bunların yapmış olduğu görevleri daha iyi anlamak ve kavrayabilmek için kod bloğunun arasına bir Enter lik boşluk verin ki kodlara bakan bunların işlevlerini ve görevlerinin ayrı olduklarını fark edebilsin.
Bununla ilgili kodların kullanımı ile örnek aşağıdaki

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub CommandButton1_Click()
Dim topla
For i = 1 to 5
topla = topla + val (controls ("TextBox" & i))
Next
'*******************************************
TextBox6.Value = Format (tola, "###,###")
TextBox7.Vlue = TextBox6 * 1.18
'******************************************
MsgBox "Hesaplama işlemi Tamalandı"
End Sub
[code]
[b]Yukarıda ‘ işareti ve devamında konulan nokta işaretleri yerine boşluk koyalım.[/b]

[code]
Private Sub CommandButton1_Click()
Dim topla
For i = 1 To 5
topla = topla + Val (Controls ("TextBox" & i))
Next
TextBox6.Value = Format (topla, "###,###")
TextBox7.Vlue = TextBox6 * 1.18
MsgBox "Hesaplama işlemi Tamalandı"
End Sub


Sizce hangisi daha güzelse onu kullanın. Bir Enter lik boşluk bırakmak bile kodların işlevinin kavrabilmesi açısından çok büyük önem taşımaktadır.
c) Yorum ve açıklama eklemek
Kod mümkün olduğunca açıklamalar ile zenginleştirilmelidir. Fakat bu zenginleştirme kodu okunamayacak hale getirmemelidir. En iyi dokümantasyon temiz yazılmış koddur.
Yorum ve açıklama eklemek için başa ‘ karakterini yazmalıyız. Ve göze hoş görünebilmesi içinde devamında şu karakterleri de kullanabiliriz. * # & / \ - _ ! + < > @ € vb…
Aşağıda bununla ilgili bir örnek eklenmiştir.

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function Toplama (a As Integer, b As Integer) As Integer
'**************************************************
' Amaç : Gönderilen a ve b Değerlerinin toplamının döndürülmesi
' Giriş : Toplanacak a ve b değeri
' a : Toplanacak 1 . Integer değişken
' b : Toplanacak 2 . Integer değişken
' Çıkış : 
' Toplama:
' Toplma işleminin sonucu
'****************************************************
Dim c as Integer ' toplama işlemi için kullanılacak [b]c[/b] değişkeni Integer olarak atanıyor
'*****************************************************
On Error Resume Next ' Hata ile karşılasırsan es geç
' toplama işlemi yapılıyor
[b]c= a + b[/b]
' Sonuç fonksiyon'a atanıyor
Toplama = c
End Function

d) Tavsiyeler
1. Bir satırda 80 den fazla karakterlik kod kullanmayın.
2. Görevleri ayrı olan kod bloklarının arasına süslemeler yapın veya bir Enter’lik boşluk bırakın.
3. Kodları yazarken hiyerarşik olacak şekilde merdiven(basamak) tekniğini kullanın.
4. Kodlarınızın en üstünde kodlar eğer size aitse Mahlasınızı veya Reklamınızı yapan süslerinizi kullanın.
5. Merdiven tekniğini kullanmak için girintiler yapın, yani space (boşluk) tuşunu ve Tab tuşlarını kullanın.
6. Satır satır açıklamaları kullanın. Açıklamaya başlamadan önce satırın başına ‘ işaretini koyun.


Umarm Faydalı olur...
DUAYEN

Bizim için zor diye bir şey yoktur, imkansızsa zaman alır...
Cevapla


chopper07
Uzman
Kullanici Avatari
Uzman
E....
1.798
29/01/2008
365
Aydın
Ofis 2003
24/11/2016,13:02
Anlatım için teşekkürler, hocam çok güzel olmuş.
™Hiç Birimiz, Hepimiz Kadar Akıllı Olamayız...®

resim
resim
resim
Cevapla


ercansahin
BlackEagle
Kullanici Avatari
Uzman
E.... Ş....
3.739
14/11/2008
Ankara
Ofis 2010 32 Bit
Bugün,20:30
Teşekkürler Sn DUAYEN..
Cevapla


benremix
Uzman
Kullanici Avatari
Uzman
R.... S....
4.432
17/05/2009
365
Ankara
Ofis 2010
Dün,09:18
Hocam faydalı bilgiler için teşekkürler.
Saygılar...
Bilgi paylaşıldıkça çoğalır....
Her engel, yaşam koşullarınızı daha iyileştirecek bir fırsattır.


Access için her zaman lazım olacak konu başlıkları listesi 


Cevapla


yorum70

Kullanici Avatari
Özel Üye
A.... Ş....
1.187
08/10/2010
71
Ankara
Ofis 2013 64 Bit
22/10/2016,21:00
Kopyaladımi geniş bir zamanda okuyacağım.
Tam benlik bir paylaşım olmuş, acaip kod yazarım, kod yazmak benim işim. Img-grin
"Her tercih, bir vazgeçiştir"

Cevapla


accessman

Kullanici Avatari
Onursal
2.367
31/10/2008
425
Denizli
Ofis 2003
20/09/2016,00:20
teşekkürler
@benbendedeilem
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi



Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya