Cansiz
New member
- Katılım
- 7 Ocak 2006
- Mesajlar
- 2,048
- Reaction score
- 0
- Puanları
- 0
- Yaş
- 35
Bu makale delphi ile programcılığa yeni başlayanlara hitap eder.
İYİ BİR PROGRAM YAZMANIN BİR KAÇ PÜF NOKTASI
:
Her birey programcı olabilir. Ama her birey iyi ve kalifiye programcı olamaz. Programcı olmak için ilgili dili ve tüm elementlerini bilmek yetmez. Hatta alakasız konularıda bilmek yetmez. Programcı olmak için esnek olmak gerekir. Tıpkı Türkçede olduğu gibi. İleriyi görmek gerekir.Bir programcı olarak ileriyi görmek aptal bir insanın sizin yazdığınız programı kullanırken karşılaşacağı hataları ki bu hatalar her türden olabilir bunları önceden sezinleyip gerekli tedbirleri ve çözümleri üretebilecek seçenekleri sunmakla mümkündür. Kısaca program, programın tasarım aşamasının beyninizde tamamlanıp kağıt üzerine (kağıt bir ms-word programı olabilir) dökülmesiyle mümkündür ki buna programcılıkta ANALİZ denir. İşte ilk konumuz analiz nasıl yapılmalı ?
ANALİZİ Çözümlenmesi gereken olayların önceden saptanması olarak açıklayabiliriz. Herşeyden önce yeni başlayan birisi bile olsanız herhangi bir konuda analiz düzeyinde ki bu programı yazmak için elzem, o konunun detaylarını bilmeniz ve konuya uygun çözümler üretmeniz gerekmektedir.
Örnekleyerek açıklayayım ;
Elinizde muhasebe sektörüne yönelik bir proje var. Ne yapacaksınız ?... Analiz için önce ilgili sektörün denyolarıyla görüşeceksiniz. Ne soracaksınız ? Çok basit yaptığınız işi nasıl yapıyor sunuz? Öyle ya adamların işini nasıl yaptığını bilmeden siz ne yapabilirsiniz? İşin nasıl yapıldığını algıladınız. (Dikkat edin anladınız demiyorum.) İşi kağıt üzerinde şekillendirmeye başlarsınız. Hangi tip veri tabanları kullanacağım. Bu veri tabanlarında hangi alanlar olacak. Hangi alanlar anahtar olacak. Anahtar alanlı tablolarla diğer tablolar arasında nasıl bir Master/Detail ilişki kurmalıyım. Bunları belirlerken kendinizi hep yazacağınız programın kullanıcılarının yerine koymalısınız. Özellikle ilişkisel veri tabanları ile çalışırken sağlam temellere oturtulmuş ve iyi bir algoritmayla anahtarlanmış veri tabanlarının tasarımına yoğunlaşmalısınız. Kullanacağınız yapıyı genel hatlarıyla ortaya koyduktan sonra sıra geldi kullanıcı arayüzlerinin tasarlanmasına. Unutmayın ki yazdığınız kodlar kullanıcıya sizin sunacağınız iyi bir giriş/çıkış arayüzü olmadan pek fazla bir fayda sağlayamaz. Bu yüzden beyninizi yazdığınız kodların kullanıcı ile nasıl etkileşime gireceği konusunda yaratıcı bir biçimde yoğunlaştırmalısınız. Özellikle veri tabanları ile çalışırken giriş, düzeltme ve silme işlemleri için kolay yol olan veri bilinçli denetimlerin (ör.DBEdit gibi.) kullanımı yerine standart bileşenleri kullanmanızı öneririm. Hatta projenin boyutuna bağlı olarak gerçek veri tabanı dosyası üzerinde işlem yapmak yerine takas dosyalar kullanmanızda yerinde bir davranış olacaktır.
Kodlamaya başlamadan önce giriş ve çıkış işlemlerini yöneteceğiniz, tüm modüllerin kullanabileceği ortak fonksiyonlar için ayrıca programınızın hata düzeltme ve ileriki sürümlerinde kolaylık sağlaması bakımından DLL dosyaları kullanmanızı/yazmanızı öneririm.
Kodlama işlemi esnasında da dikkat edilmesi gereken noktalar vardır. Örneğin karmaşık bir kodlama stili programda hata ayıtlamayı zorlaştıracaktır. Blokların dizilişi önemli bir konudur. Aşağıdaki kod parçasını inceleyin.
Function TDataModule.GetAnahtar(Const aFieldName : String) : Extended;
Var NewKey : Extended;
P : PChar;
Begin
TRY
NewKey := 0;
try
AnahtarDB.Open;
NewKey := AnahtarDB.FieldByName(aFieldName).AsFloat;
NewKey := NewKey+1;
AnahtarDB.Edit;
AnahtarDB.FieldByName(aFieldName).AsFloat := NewKey;
AnahtarDB.Post;
except on E:EDataBaseError do
BEGIN
P := PChar('Yeni Anahtar Alan Değeri Alınırken Hata !'+E.Message);
Application.MessageBox(P,'Anahtarlama Hatası',mb_iconerror);
END;
end;
FINALLY
AnahtarDB.Close;
Result := NewKey;
END;
end;
Burada dikkat etmeniz gereken konu Blok başlangıç ve sonlarının aynı hizada olması gerektiğidir. Bu kodun okunmasını kolaylaştırdığı gibi hata denetiminide basitleştirir. Bir hata denetimi ile ilgili bir başka konuda yazdığınız fonksiyon veya procedure' lerin kod satırı uzunluğudur. Ben başka bir yolum kalmadığı sürece her methodun 15-20 satırı geçmemesine özen gösteririm. Delphiyi geliştiren ekibin kodlarını incelerseniz aynı yöntemi kullandıklarını görürsünüz. Buda yazılan kodu okumayı ve hata denetimini kolaylaştıran başka bir yöntemdir.
Her birey programcı olabilir. Ama her birey iyi ve kalifiye programcı olamaz. Programcı olmak için ilgili dili ve tüm elementlerini bilmek yetmez. Hatta alakasız konularıda bilmek yetmez. Programcı olmak için esnek olmak gerekir. Tıpkı Türkçede olduğu gibi. İleriyi görmek gerekir.Bir programcı olarak ileriyi görmek aptal bir insanın sizin yazdığınız programı kullanırken karşılaşacağı hataları ki bu hatalar her türden olabilir bunları önceden sezinleyip gerekli tedbirleri ve çözümleri üretebilecek seçenekleri sunmakla mümkündür. Kısaca program, programın tasarım aşamasının beyninizde tamamlanıp kağıt üzerine (kağıt bir ms-word programı olabilir) dökülmesiyle mümkündür ki buna programcılıkta ANALİZ denir. İşte ilk konumuz analiz nasıl yapılmalı ?
ANALİZİ Çözümlenmesi gereken olayların önceden saptanması olarak açıklayabiliriz. Herşeyden önce yeni başlayan birisi bile olsanız herhangi bir konuda analiz düzeyinde ki bu programı yazmak için elzem, o konunun detaylarını bilmeniz ve konuya uygun çözümler üretmeniz gerekmektedir.
Örnekleyerek açıklayayım ;
Elinizde muhasebe sektörüne yönelik bir proje var. Ne yapacaksınız ?... Analiz için önce ilgili sektörün denyolarıyla görüşeceksiniz. Ne soracaksınız ? Çok basit yaptığınız işi nasıl yapıyor sunuz? Öyle ya adamların işini nasıl yaptığını bilmeden siz ne yapabilirsiniz? İşin nasıl yapıldığını algıladınız. (Dikkat edin anladınız demiyorum.) İşi kağıt üzerinde şekillendirmeye başlarsınız. Hangi tip veri tabanları kullanacağım. Bu veri tabanlarında hangi alanlar olacak. Hangi alanlar anahtar olacak. Anahtar alanlı tablolarla diğer tablolar arasında nasıl bir Master/Detail ilişki kurmalıyım. Bunları belirlerken kendinizi hep yazacağınız programın kullanıcılarının yerine koymalısınız. Özellikle ilişkisel veri tabanları ile çalışırken sağlam temellere oturtulmuş ve iyi bir algoritmayla anahtarlanmış veri tabanlarının tasarımına yoğunlaşmalısınız. Kullanacağınız yapıyı genel hatlarıyla ortaya koyduktan sonra sıra geldi kullanıcı arayüzlerinin tasarlanmasına. Unutmayın ki yazdığınız kodlar kullanıcıya sizin sunacağınız iyi bir giriş/çıkış arayüzü olmadan pek fazla bir fayda sağlayamaz. Bu yüzden beyninizi yazdığınız kodların kullanıcı ile nasıl etkileşime gireceği konusunda yaratıcı bir biçimde yoğunlaştırmalısınız. Özellikle veri tabanları ile çalışırken giriş, düzeltme ve silme işlemleri için kolay yol olan veri bilinçli denetimlerin (ör.DBEdit gibi.) kullanımı yerine standart bileşenleri kullanmanızı öneririm. Hatta projenin boyutuna bağlı olarak gerçek veri tabanı dosyası üzerinde işlem yapmak yerine takas dosyalar kullanmanızda yerinde bir davranış olacaktır.
Kodlamaya başlamadan önce giriş ve çıkış işlemlerini yöneteceğiniz, tüm modüllerin kullanabileceği ortak fonksiyonlar için ayrıca programınızın hata düzeltme ve ileriki sürümlerinde kolaylık sağlaması bakımından DLL dosyaları kullanmanızı/yazmanızı öneririm.
Kodlama işlemi esnasında da dikkat edilmesi gereken noktalar vardır. Örneğin karmaşık bir kodlama stili programda hata ayıtlamayı zorlaştıracaktır. Blokların dizilişi önemli bir konudur. Aşağıdaki kod parçasını inceleyin.
Function TDataModule.GetAnahtar(Const aFieldName : String) : Extended;
Var NewKey : Extended;
P : PChar;
Begin
TRY
NewKey := 0;
try
AnahtarDB.Open;
NewKey := AnahtarDB.FieldByName(aFieldName).AsFloat;
NewKey := NewKey+1;
AnahtarDB.Edit;
AnahtarDB.FieldByName(aFieldName).AsFloat := NewKey;
AnahtarDB.Post;
except on E:EDataBaseError do
BEGIN
P := PChar('Yeni Anahtar Alan Değeri Alınırken Hata !'+E.Message);
Application.MessageBox(P,'Anahtarlama Hatası',mb_iconerror);
END;
end;
FINALLY
AnahtarDB.Close;
Result := NewKey;
END;
end;
Burada dikkat etmeniz gereken konu Blok başlangıç ve sonlarının aynı hizada olması gerektiğidir. Bu kodun okunmasını kolaylaştırdığı gibi hata denetiminide basitleştirir. Bir hata denetimi ile ilgili bir başka konuda yazdığınız fonksiyon veya procedure' lerin kod satırı uzunluğudur. Ben başka bir yolum kalmadığı sürece her methodun 15-20 satırı geçmemesine özen gösteririm. Delphiyi geliştiren ekibin kodlarını incelerseniz aynı yöntemi kullandıklarını görürsünüz. Buda yazılan kodu okumayı ve hata denetimini kolaylaştıran başka bir yöntemdir.