İ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 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. İş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 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ındab 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 : Extended; Var NewKey : Extended; P : PChar; Begin TRY NewKey := 0; try AnahtarDB. Open; NewKey := AnahtarDB. FieldByName . AsFloat; NewKey := NewKey+1; AnahtarDB. Edit; AnahtarDB. FieldByName . AsFloat := NewKey; AnahtarDB. Post; except on E:EDataBaseError do BEGIN P := PChar ; Application. MessageBox ; 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. Şahsen 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. Diğer bir konuda delphinin varsayılan istisnalarını yönetmektir. Evet delphi iyi bir hata denetim mekanizmasına sahiptir. Ancak hata mesajları Türkçe değildir. Bundan başka bir hata çıktığında yapılması gerekenleri derleyiciye ve kullanıcıya aktarmak programın sağlığı açısından da önemlidir. Örneğin bir Timer bileşeninin kodu aşağıdaki gibi olabilir. Procedure TForm1. Timer1OnTimer ; Var P : PChar; S : String; Begin try TRY S := 'True'; QueryAktifKullanici. Close; QueryAktifKullanici. Sql. Clear; QueryAktifKullanici. Sql. Add ; QueryAktifKullanici. Open; Caption := 'Oturum Açmış Aktif Kullanıcı Sayısı :'+IntToStr(QueryAktifKullanici. Fields . AsInteger); EXCEPT ON E:EXCEPTİON DO BEGIN P:= PChar('Uzak Tablo Güncelleştirilirken Hata!'+