Programlamadili.Net Yeni Nesil Programlama Portali
 
Makale Ara: 
Kullanıcı Adı : Şifre :
  • Makale Kategorileri
ACPI [0]
Action Script [5]
ASP [12]
ASP.NET [23]
Assembly [3]
Bash [1]
C [4]
C# [9]
C++ [10]
Cobol [1]
Delphi [31]
Flash [5]
Html [9]
JAVA [36]
Java Script [11]
JSF [2]
Jsp [1]
Lua [1]
Matlab [2]
MySQL [26]
Oracle [1]
Pascal [31]
Perl [4]
Photoshop [2]
PHP [108]
Python [8]
REXX [6]
Ruby [1]
SEO [4]
Visual Basic [20]
  • Gorsel Ders Kategorileri
Asp [25]
Asp.Net [5]
Csharp [33]
Delphi [3]
Fireworks [4]
Flash [10]
Java Script [0]
Photoshop [0]
PHP [11]
Vb.Net [9]
Visual Basic [4]
  • Dil
English
Deutsch
deutsch
  • Reklam Alani
Delphi / Delphi programlama dilinde BORLAND KODLAMA STANDARTLARI
Delphi programlama dilinde BORLAND KODLAMA STANDARTLARI
Yazar: by_Coder
Eklenme: 31/01/08    Okunma: 58    
 
 


Bu doküman Delphi kod yazma standartlarını anlatmaktadır. Borland tarafından oluşturulan ve birçok Delphi programcısı tarafından benimsenen standartlar. Object Pascal çok güzel dizayn edilmiş bir dildir, bu standartların temel amacı da kodu daha okunabilir kılmaktır. Daha sonra yazdığınız bir koda baktığınız zaman kolayca okuyabilmelisiniz veya birlikte proje geliştirdiğiniz bir takım arkadaşınız kodlarınızı kolayca anlayabilmelidir.

 


GENEL KURALLAR


 


Hizalama

 


* Eğer kodda hizalama yaparsanız, kodları okumak ve takip etmek çok daha kolay olacaktır. İlk hiza başlangıçtan itibaren 2 boşluk bırakarak, ikinci hiza başlangıçtan itibaren 4 boşluk bırakarak, üçüncü hiza başlangıçtan itibaren 6 boşluk oluşturarak ve sonrasında her hiza için iki boşluk (8, 10, 12, 14... boşluk) bırakarak devam edilmelidir.


 


* Tab karakterlerini kod dosyalarına kaydetmeyin. Çünkü Tab karakterinin belirttiği boşluk miktarı kullanıcıdan kullanıcıya ve çeşitli kod uygulamalarında farklı algılanmaktadır.


 


 Tools -> Editor Options -> Source Options kısmındaki Use Tab Character seçeneğini iptal ederek Tab karakterinin kod dosyalarına kaydolmasını engelleyebilirsiniz. Bu seçeneği kapattığınızda, Tab'a bastınığız zaman Tab karakteri yerine boşlukla doldurulur.


 


* Kod editöründe düşey bir çizgi vardır. Kod yazarken bu çizgiyi geçmezseniz kodunuz hem daha kolay okunur, hem de çıktıları daha iyi gözükür.


 


* Birbiriyle ilişkili begin ve end, birbiriyle aynı hizada ve ayrı satırlar şeklinde yazılmalıdır.


 


Yanlış : for i := 0 to 10 do begin // begin, for'la aynı satırda


 


Doğru : for i := 0 to 10 do


            begin


 


if Şart then


begin


  ...


end


else


begin


  ...


end;


 


Yorum Koyma

 


* Yorum için //, {} ve (* *) kullanılır.


 


* // tek satıra yorum yazmak için kullanılır.


{} ve (* *) ise blok olarak yorum koymak için kullanılır, başlangıç ve bitiş arasındaki her şey yorum kabul edilir. Bunlardan {} yorum yazmak, (* *) de çalışma anında geçici olarak bazı kodları devre dışı bırakmak için kullanabilirsiniz.


 


* Koda ne fazla, ne de az, anlamanız için yeterli olacak kadar yorum ekleyin.


 


* Eğer düzeltmek istediğiniz bir koda geçici olarak yorum ekliyorsanız, yorumun başına ??? eklemek iyi olacaktır. Daha sonra kolayca bu satırları bulup, gerekli düzenlemeleri yapabilirsiniz.


 


//???:diğer procedure’u hazırlayınca sıralama kısmını da düzeltmek gerek.


 


Lisans Bilgisi Ekleme


 


Yazdığınız unit’e lisans bilgileri eklemek istiyorsanız, unit’in en üstüne aşağıdaki yapıda eklenmelidir. Gerekirse araya aynı formatta yeni satırlar eklenebilir.


 


{*******************************************************}
{                                                       }
{       Üretim Modülü                                   }
{                                                       }
{       © 2002-2003, delphiturkiye.com                  }
{                                                       }
{*******************************************************}

 


 


OBJECT PASCAL


 


Boşluklar

 


Object Pascal boşlukları göz ardı eder. Object Pascal çok güzel bir dizayna sahip olduğu için çok fazla boşluk bırakmanız gerekmeyecek, ancak;


 


* Rutin (procedure, function) tanımları arasında bir satır boşluk bırakmalısınız.


 


* Açma parantezi ile bir sonraki karakter ve kapama parantezi ile bir önceki karakter arasında boşluk bırakmayın.


 


Yanlış : CallProc( AParameter )


Doğru : CallProc(AParameter)


 


* Kod içerisinde gereksiz yerlerde ekstra parantezler kullanmayın.


 


if (i = 15) then             // yanlış, burada paranteze gerek yok.


if (i = 15) or (j = 5) then  // doğru, parantezler gerekli

 


* Noktalı virgülden önce boşluk bırakmayın.


 


* Köşeli parantezlerden önce ve sonra boşluk bırakmayın.


 


Yanlış : MyInteger := MyIntegerArray [ 3 ];


Doğru : MyInteger := MyIntegerArray[3];


 


Ayrılmış Kelimeler (Reserved Words)


 


Object pascal'a ait ayrılmış kelimeler (for, if, begin, end gibi kod içinde özel manası olan kelimeler) tamamen küçük harflerle yazılmalıdır. Bu kelimeler varsayılan olarak editör içinde koyu yazı tipi ile gösterilirler.


 


 


Procedure ve Function’lar (Rutinler)


 


* Rutinlere yaptıkları işi anlatan manalı isimler verilmelidir. Genelde iyi isimler; bir isim ve bir fiilden oluşur.


 


DosyaBul, ProgramiKapat gibi.


 


* Rutin isimlerini daha kolay okuyabilmek için kelimelerin baş harfleri büyük yazılmalıdır.


 


yanlış : procedure bubiruzunokumasizorrutinismi;


doğru : procedure BuOkumasiKolayBirRutinIsmi;


 


* Rutin isimlerinde alt çizgi kullanılmamalıdır.


 


Yanlış : procedure Bu_Yanlis_Bir_Procedure_Ismi;


 


Parametreler

 


* Mümkün olduğu kadar, aynı tipteki parametreler tek bir ifadede toplanmalıdır.


 


yanlış : procedure Ornek(Parametre1: string; Parametre2: string; Parametre3: string);


doğru : procedure Ornek(Parametre1, Parametre2, Parametre3: string);


 


* Parametrelere manalı isimler verilmelidir.


 


* Eğer kategorisel bir sıralama olabiliyor ise parametrelerin sıralamasını ona göre yapın.


 


BirProc (Ulke, Bolge, Il, Ilce : string); gibi.


 


* Böyle bir kategori yok ise çok kullanılan parametreden, az kullanılan parametreye doğru yazın. Bir istisna olarak eğer Sender parametresi varsa daima ilk sırada yazılır.


 


İsim Çakışmalarını Önleme


 


Eğer bir rutin birden fazla unitte tanımlı ise uses kısmında bu unitlerin ikisinin de kullanımı durumunda oluşabilecek karışıklıkları önlemek için bu rutinleri unit ismi ile kullanmak gereklidir.


 


Örnek : FindClose rutini 2 unitte tanımlıdır.


 


SysUtils.FindClose(SR); veya Windows.FindClose(Handle);


 


Değişkenler

 


* Değişkenlere anlamlı isimler verilmeli.


 


* Döngü değişkenleri için genelde i, j, k harfleri kullanılır.


 


* Boolean değişkenler tanımlanırken isimleri (True, False) değerlerini tam manasıyla anlatacak bir isim olmalı.


 


 


 


* Birden fazla aynı tipte değişkeni ayrı ayrı satırlarda tanımlamak yerine, tek satırda tanımlanmalı.


 


var


 i: integer;


 j: integer;


 


yerine


 


var


 i, j: integer;


 


* Eğer gerekli ise lokal değişkenlere hemen rutinin girişinde ilk değerler atanmalıdır.


 


* Mümkün olduğu kadar global değişkenler kullanılmamalı, sadece gerçekten gerekli olduğu durumlarda kullanılmalıdır. Global değişkenlere tanımlama aşamasında ilk değer ataması yapılabilir. Eğer gerekli ise bu atamaları tanımlama kısmında yapabilirsiniz. Ancak atayacağınız değerler 0, nil, ... sıfırlama değerleri ise bu atamaları yapmayın. Bu atamalar en uygun biçimde Delphi tarafından zaten sıfırlanmaktadır.


 


Real Tipini Kullanmayın

 


* Real tipi geriye doğru uyumluluk için bulunmaktadır. bunun yerine Double tipini kullanın.


 


Variant ve OleVariant


 


Çalışma esnasında tipi belli olmayan verileri tutmak için kullanılırlar ve genelde COM ve veritabanı programlarında lazım olurlar, bunların dışında pek kullanmayın. Variant'lar diğer tiplere göre çok daha yavaş çalışırlar.


 


Variant stringleri Delphi tipinde tutarken, OleVariant bu stringleri Ole string'lere çevirir (WideChar). Bunun için COM-based uygulamalarda ve ActiveX geliştirirken OleVariant kullanın.


 


if İfadesi


 


* if/then/else şeklinde kullanılan ifadelerde, gerçekleşmesi daha muhtemel olay then kısmında, daha az muhtemel olan ise else kısmında yer almalıdır.


 


* if ifadelerinin okunması daha zor olduğundan, mümkün olduğu kadar case ifadesi kullanın.


 


* iç içe if ifadelerini en fazla 5 seviyeye kadar yapın. Daha fazlasına ihtiyacınız varsa, yapınızı gözden geçirip daha uygun bir yapıya çevirin.


 


* Eğer birden fazla şartı test ediyorsanız, şarları hızlı çalışandan yavaş çalışana doğru dizmeniz daha iyidir. Mesela şart1 daha hızlı hesaplanıyor ve şart2 biraz daha yavaş hesaplanıyorsa


 


if Şart1 or Şart2 then // şart1 True ise, Şart2'ye bakılmaz.


 


 


 


 


* Birden fazla şartı test ediyorsanız ve şart ifadeleri uzunsa, her şartı bir satıra yazmak daha iyi olacaktır.


 


if Şart1 and


  Şart2 and


  Şart3 then


 


case İfadesi


 


* case'de ifadeler nümerik veya alfabetik sıralamada yazılmalıdır.


 


* her ifadenin uzunluğu 4-5 satırı geçmemesi iyi olur. Eğer bir ifadenin uzunluğu çok fazla ise bunu ayrı bir procedure veya fonksiyon olarak yazmak daha iyi olacaktır.


 


* her ifade begin..end blokları arasına yazılmalıdır.


 


case İfade of

  ifade1 :


    begin


      ...


    end;


  ifade2 :


    begin


       ...


    end;


else


  ...


end; {case}


 


with ifadesi


 


with ifadesi yazımda kolaylık sağlaması açısından kullanılır. Ancak with ifadesini gerekli yerlerde kullanmalı ve birden fazla nesne ile kullanmamalısınız.


 


Yanlış : with Record1, Record2 do


 


böyle bir kullanım hem kodu okuyan kişiyi şaşırtır, hem de hata tespitlerini zorlaştırır.


 


EndIf, EndCase, EndWith

 


Object Pascal’da bu ifadeler yoktur. Bu ifadeler begin..end blokları arasına yazılırlar. Bu ifadeleri kullanırken, başlangıç ve bitiş bloklarını belirlemek için yorum kullanmalısınız :


 


if i > 5 then


  begin


    ...


  end; {if}  // if bloğunun bitişi

 


with Query1 do


  begin


    ....


  end; {with} // with bloğunun bitişi


 


 


Enumerated Type


 


Her elemandan önce enumarated type’i belirten harflerin eklenmesi gerekir. Aşağıdaki örnekte, her elemandan önce bk harfleri eklenmiştir ve bunlar ButtonKind ifadesinin baş harfleridir.


 


Yalnız sadece L veya 1 eklemekten kaçının. Bunlar gösterimde ve bazı yazıcılarda problem çıkartabilir.


 


TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo,
               bkClose, bkAbort, bkRetry, bkIgnore, bkAll);

 


Exception Handling


 


Delphi'de genel kural nesneyi oluşturan yok eder. Eğer bir form veya bir nesne oluşturmuşsanız onu yok etme görevi de sizindir. Aldığınız kaynakları geri sisteme vermelisiniz. Bunun için bol bol try..finally bloğu kullanmanız gerekir.


 


SomeClass1.Create; // oluştur


try


  ... // bir şeyler yap


finally


  SomeClass1.Free; // SomeClass1 mutlaka yok edilir.


end; {try}


 


Eğer bir hata oluştuğu zaman bir işlem yapmak istiyorsanız (genelde hatayı gösterme veya kaydetme gibi) try..except bloğu kullanmalısınız.


 


try


  ....


except


  .... // hata oluşursa bu blok çalışır


end; {try}


 


Class İsimleri


 


* Her zaman olduğu gibi mantıklı isimler verilmelidir. Delphi'de classların başına T harfinin konulması bir gelenektir. Yani Her class(sınıf) ismi T ile başlamalıdır.


 


type


  TMusteri = class(TObject);


 


Fields ve Property Access


 


* Field’ların başına F harfi eklenmelidir. FYukseklik gibi.


 


* Tüm fieldlar private kısmında tanımlanmalıdır.


 


* property erişimi için kullanılan metodların başına get ve set kelimeleri eklenmelidir.


 


property Yukseklik: Integer read GetYukseklik write SetYukseklik;


 


* Methodlar alfabetik sırada sıralanmalıdır. Yani : private – protected – public - published


 


DOSYALAR


 


* Projelere anlamlı ve açıklayıcı isimler verilmelidir. Mesela sistem bilgilerini gösteren bir program için : SystemInfo.dpr gibi.


 


* Form isimlerine anlamlı ve açıklayıcı bir isimden sonra Frm karakterleri ile biten bir isim verilmedir. Mesela Stok formu için StokFrm.pas gibi.


 


* Data Modüllere yine açıklayıcı bir isimden sonra DM karakterleri ile biten bir isim verilmelidir. Mesela müşteri tabloların yer aldığı data module ise : MusteriDM.pas gibi.


 


FORMLAR


 


* Form isimleri açıklayıcı bir ön isim ve Form kelimesinin birleşmesinden oluşmalıdır. Mesela Stok formunun ismi : StokForm, müşteri bilgilerinin girişinin yapıldığı formun ismi : MusteriGirisForm


 


* Sadece çok gerekli formlar auto-create yapılmalıdır. Auto-Create formlar program çalıştığı anda otomatik olarak oluşturulur ve hafızada yer kaplarlar. Çok gerekli formlar dışındaki diğer formlar Project Options kısmından Avaible Forms kısmına alınmalıdır.


 


* Data modullere açıklayıcı bir ön ekten sonra DataModule kelimeleri eklenmelidir. Mesela müşteri tablolarının yer aldığı data module için MusteriDataModule gibi.


 


BİLEŞEN ÖNEKLERİ


 


Forma koyduğunuz her bileşene bileşenin türünü gösteren bir önek ve anlamlı isimler vermelisiniz. Aşağıda bileşenler için önekler yer almaktadır.


 


Örneğin Vergi nosunun girileceği Edit’in ismi, başına Edt önekini alarak EdtVergiNo olmalı.


 


Standard Tab



 



 






Önek




Component






Mm




TmainMenu






Pm




TpopupMenu






Mmi




TmainMenuItem






Pmi




TpopupMenuItem






Lbl




Tlabel






Edt




Tedit






Mem




Tmemo






Btn




Tbutton






Chk




TcheckBox






Rb




TradioButton






Lb




TlistBox






Cb




TcomboBox






Scb




TscrollBar






Gb




TgroupBox






Rg




TradioGroup






Pnl




Tpanel






Cl




TcommandList






 

 


Additional Tab



 



 






Önek




Component






Bbtn




TbitBtn






Sb




TspeedButton






Me




TmaskEdit






Sg




TstringGrid






Dg




TdrawGrid






İmg




Tımage






Shp




Tshape






Bvl




Tbevel






Sbx




TscrollBox






Clb




TcheckListbox






Spl




Tsplitter









Taglar: DELPHI (DELPHOI) Adı Nereden Geliyor? Nedir? DELPHI 8 FOR .NET FRAMEWORK RESİMLERİ Delphi de Interface Hazırlamak ve Kullanmak Delphi de Mac Adresini Alan Kod Delphi ile Inf Dosyası Hazırlama Delphi programlama dilinde BORLAND KODLAMA STANDARTLARI Delphi Uygulamalarında Çoklu Dil Uygulamaları Delphi'ye Giriş Delphide Kayıtlı Sürücüleri Bulma Delphide Sayı Üretim Fonksiyonları DELPHİ İLE NETWORK ÜZERİNDEN VERİ İLETİMİ InstallShield Express Kod bankası ( Web browser ) Kod bankası ( Ag üzerinden veya internetten ip adresine göre dosya alma ve gönderne ) Kod bankası ( Ag üzerinden veya internetten ip adresine göre dosya alma ve gönderne ) Kod bankası ( Aranilan kaydin listboxda görüntülenmesi ) Kod bankası ( Cd-rom açma-kapama ) Kod bankası ( Com objelerinin olay yönetimi nasil yapilir ) Kod bankası ( Delphi asembly ile internette fark edilmeden dolaşma ) Kod bankası ( Güvenlik kilidi ) Kod Bankası ( Not defteri Yapımı ) Kod bankası ( Programin demo sürümünü yapmak ) Kod bankası ( Veritabaninda arama yapmak ) Kod bankası (Bilgisayari istediginiz zaman kapatmak ) Kod bankası (Ekran görüntüsünü almak)

Isminiz:
E-mail adresiniz:
Güvenlik Kodu:
  
 

 

Istatistikler ,
Sitemizde su anda 30 kategori, 377 makale , 104 görsel ders ve 3 Ziyaretci bulunmaktadir...
Toplam üye sayimiz : 496

Copyright © 2007 Programlamadili.net - Programlama & Tasarim: Recep Ikiz & Ferdi Küçük

| Site Haritasi |

"Ne Aradığını Bilmeyen Bulduğunun Farkına Varamaz "
ACPI Programlama dili, Action Script Programlama dili, ASP Programlama dili, ASP.NET Programlama dili, Assembly Programlama dili, Bash Programlama dili, C Programlama dili, C# Programlama dili, C++ Programlama dili, Cobol Programlama dili, Delphi Programlama dili, Flash Programlama dili, Html Programlama dili, JAVA Programlama dili, Java Script Programlama dili, JSF Programlama dili, Jsp Programlama dili, Lua Programlama dili, Matlab Programlama dili, MySQL Programlama dili, Oracle Programlama dili, Pascal Programlama dili, Perl Programlama dili, Photoshop Programlama dili, PHP Programlama dili, Python Programlama dili, REXX Programlama dili, Ruby Programlama dili, SEO Programlama dili, Visual Basic Programlama dili,
Reklam alanı