Bu standardin herkesi belli bir sekilde sinir etmesi beklenen bir etkidir. Son halini
bu sayfada gormus oldugunuz dokuman bir cok proje, bir cok sirket ve konu
uzerinde tartisarak gecirilen cok sayida saat sonucunda bu halini almistir.
Herhangi bir kisi veya kurumun sahsi tarzi degildir ve lokal olarak yapilabilecek
degisikliklere aciktir.
Iyi Yonler:
Bir proje ortak bir standarda uydugunda bazi guzel seyler olur:
* Programcilar koda bakip neler olup bittigini kolaylikla anlayabilir.
* Yeni baslayanlarin konuya hakimiyet kazanmasi hizlanir ve kolaylasir.
* PHP'ye yeni baslayan insanlar kendi tarzlarini gelistirmek ve onu olumune
savunmak zorunlulugundan kurtulur.
* PHP'ye yeni baslayan kisilerin ayni hatalari defalarca tekrarlamasi engellenmis
olur.
* Tutarli ortamlarda hata yapma ihtimali azalir.
* Programcilarin ortak bir dusmani olur.
Kotu Yonler:
Bir de kotu yonlere goz atalim:
* Standard genellikle aptalcadir cunku PHP 'den anlamayan birisi tarafindan
yapilmistir.
* Standard genellikle aptalcadir cunku benim yaptigimin aksini soylemektedir.
* Standardlar yaraticiligi azaltir.
* Insanlar tutarli olduklari surece standardlar gereksizdir.
* Standardlard cok fazla yapilanmaya sebep olur.
* Insanlar zaten standardlari kaale almazlar.
Tartisma:
Bir cok proje yoneticisinin tecrubeleri, standarlarin projelerin daha sorunsuz
ilerlemesini sagladigi sonucuna ulasmaktadir. Peki basari icin standardlar gerekli
midir? Tabii ki hayir. Fakat standardlarin olmasi bize projelerimizde yardimci
olacaktir, ve bulabilecegimiz butun yardima ihtiyacimiz vardir. Durust olun,
herhangi bir standarda karsi olan fikirlerinizin cogu sizin egonuzdan
kaynaklanmaktadir. Standardlarda karsilastigimiz kararlarin pek azi teknik acidan
yetersiz denebilecek seviyededir. Bu farkli kararlar olsa olsa sahsi bir tercihin
sonucudur. Bu yuzden esnek olun ve butun projelerin temelinde takim oyunu
oldugunu ve projelerin butun takimin cabasiyla basariya ulasacagini unutmayin.
Standardlarin Uygulamasi:
Oncelikle, bir standard konusundaki supheler ve sorunlar grup icerisinde tartisilip
bir sonuca baglanmalidir. Kimbilir belki de elinizdeki standard icinde bulundugunuz
duruma uygun olmayabilir. Bu standard bazi onemli unsurlari goz ardi ediyor
olabilir. Hatta belki de yonetimde buyuk nufuzu olan kisiler standarddaki bazi
unsurlara karsi olabilir.
Ilk tartisma asamasindan sonra varilan sonucun kabul edilebilir oldugunu, diger
bircok programci tarafindan kabul edilebilir bulundugunu ve bu yuzden takip edip
uygulamaya deger oldugunu ve gerekirse bu konuda sahsi tavizler
verilebilecegini benimsemek gerekir.
Eger proje grubu bu standarda gonullu olarak katilmiyorsa yonetim bu standardi
kodun kalite kontrolunden gecmesi icin uyulmasi gereken zorunlu sartlar olarak
da niteleyebilir.
Bir Fikri Kabul Etmek:
1. Mumkun degil.
2. Mumkun olabilir, ama zayif ve hic ilginc degil.
3. Dogru ve ben dogru oldugunu zaten soylemistim.
4. Oyle oldugunu ilk ben dusundum.
5. Kim daha farkli oldugunu dusunebilir ki?
Yeni bir fikri kabul etme yolunda eger negatif bir onyargi ile ilerliyorsaniz, lutfen
acik fikirli ve yeniliklere acik olmaya calisin. Boyle yaptiginiz halde bile hala
sonucla ayni fikirde olmayacaginiz durumlar soz konusu olabilir, fakat yine de
farkli bir yolu/yontemi kabul edebilmek icin takip etmeniz gereken bir yol vardir.
O yolda ilerlemekten kendinizi mahrum etmeyin.
ISIMLER:
Konuya Uyan Isimler Secin
Isimler programciligin kalbidir. Eskiden bir insanin gercek adini bilmenin o kisi
uzerinde sihirli guclere sahip olmayi sagladigina inanilirdi. Eger birsey icin dogru
ismin ne olmasi gerektigini biliyorsaniz, kendinize ve sizden sonra gelecek
programcilara kod uzerinde kullanibilecekleri buyuk bir guc veriyorsunuz
demektir.
Bir isim, icinde bulundugu cevre hakkinda uzun ve derin bir dusunme surecinin
urunudur. Sadece bir sistemin butun olarak calisma prensibini tam olarak anlayan
bir programci sisteme tam anlamiyla uyan isimler bulabilir. Eger isim uygunsa geri
kalan hersey dogal bir sekilde uyacaktir. Bu sayede iliskiler acik, anlamlar
ulasilabilir, ve insancil beklentilerden yola cikarak ulasilan sonuclar anlamli
olacaktir.
Eger kodunuza baktiginizda isimleri 'sey', 'birsey', 'bunu_yap','suraya_git',
'onu_calistir' gibi isimlerle degistirdiginizde birsey farketmeyecek gibi geliyorsa, o
kodun dizaynina bir daha goz atsaniz iyi olur.
Sinif Isimleri
* Sinifin ismini, sinifin ne olduguna bakarak verin. Eger ismi bulmak konusunda
cok ugrasiyorsaniz bu sisteminizin dizaynina yeteri kadar zaman harcamadiginizin
bir belirtisidir.
* Uc kelimeden fazla birlesik isimler sistem dizayninizin bazi seyleri bir birine
karistiriyor olabileceginin bir habercisidir. Dizayninizi tekrar gozden gecirin. Bir
CRC karti oturumuyla objelerinizin gereginden fazla sorumluluklarla yuklenmis olup
olmadigini kontrol edin.
* Bir siniftan kalitim/miras yoluyla (inheritance) baska bir sinif olusturdugunuzda
ana sinifin ismini alt sinifin ismi icinde kullanmaktan kacinin. Eger bir sinifiniz
varsa o sinif kendi ayaklari uzerinde durabilmelidir. Hangi baska siniftan
olusturulmus oldugu onemli olmamalidir.
* Eger siniflariniz bir ortak baslik altinda toplanabilir nitelikte ise, yani benzer bir
amaca hizmet ediyorlarsa bu siniflari belli bir baslik altinda toplamak da
mumkundur. Ornegin birkac 'motor' sinifiniz oldugunu dusunursek, SorguMotoru,
AramaMotoru gibi sinif isimleri kullanilabilir.
Metod ve Fonksiyon Isimleri:
* Genellikle butun metod ve fonksiyonlar bir aktivite gerceklestirirler, bu yuzden
isimleri de gerceklestirdikleri aktiviteyi belirtir nitelikte olmalidir. Ornegin,
HataKontrol() yerine HataKontroluYap(), VeriDosyasi() yerine
VeriDosyasinaCiktiYap() kullanilmalidir. Bu kullanim sekli degisken objelerinin ve
fonksiyonlarin birbirine karismasini da engelleyecektir.
* Bazen sona eklenen kisaltmalardan yararlanilabilir.
- MAX : Bir degiskenin alabilecegi Maximum degerden bahsederken.
- Cnt : Bir sayac degiskeninin o anki degeriniden bahsederken ( Sayac =
Counter ) - Key : Bir anahtar deger ( Anahtar = Key )
Ornegin: TekrarMax - Maksimum tekrar sayisi, TekrarCnt - Su anki tekrar sayisi
gibi kullanilabilir.
* Bazen basa eklenen kisaltmalardan da yararlanilabilir.
(Bu bolumun aciklamasi yukari bolumle ayni. Ornek yanlizca ingilizce oldugunda
basa eklenen bir ornek oluyor. Basa ek eklemek Turkce'ye uygun olmadigi icin
burayi yok farzediyoruz)
Tamami Buyuk Harf Olan Kisaltmalar Kullanmayin:
* Normalde tamami buyuk harften olusan kisaltmalari bir isimde kullanmaniz
gerektiginde bu kisaltmanin sadece ilk harfini buyuk yapip gerisini kucuk harfler
devam edin.
Ornegin: 'YeniHTMLSayfasi' yerine 'YeniHtmlSayfasi' kullanin.
Aciklama:
* Tamami buyuk harflerden olusan kisaltmalari isim olarak kullanirken herkes
farkli bir tarz izlemektedir. Isimlerin ne anlama geldigini tahmin edebilmek
acisindan sadece bir tarzi kullanmak gereklidir.
Ornegin NetworkABCKey isminde ABC'den gelen C ile Key'den gelen K karismis
durumdadir. Bazi programcilari rahatsiz etmeyen bu durum digerlerini sinir
edebilmektedir. Bu yuzden degisik kisiler tarafindan yazilmis kod orneklerinde bu
konuya degisik yaklasimlar goreceksiniz.
Ornekler: class FluidOz // FluidOZ degil class GetHtmlStatistics //
GetHTMLStatistics degil
Evet simdilik bu kadar. Web'de bir cok kaynagin PHP kodlama konusunda
referans olarak gosterdigi bu kaynagin tamamini ilerleyen gunlerde sitemizde ve
mumkun olursa kaynagin ingilizcesinin bulundugu yansi sitelerinde de
bulabileceksiniz.