Alıntı (canalpay):
> Yok sadece sınıfın üyesi olarak tanımlanmasına gerek yoktu sadece işlevde tanımlansa yeterli diyorsanız
Değişkenler aksine bir neden yoksa, her zaman için kullanıldıkları ilk yere en yakın noktada tanımlanmalıdır. O durumda, while bloğunun için oluyor.
Alıntı:
> içimdeki ses ileride lazım olabilir şimdilik öyle kalsın daha sonra düzeltirsin diyor :-)
Ah... O sesi çok iyi bilirim. :) Kulaklarını tıkamayı şimdiden öğrenmeye bak. Her zaman için en basit olan ve yalnızca şu anda gereken şeyi yap.
Kaldı ki, özellikle bu durum için; bir işlevi içinde kullanılmış olan bir değişkenin bütün veri tabanı nesnesinde yeri olmamalı.
Sınıfları da olabildiğince küçük tasarlamak isteriz. Özellikle çok nesnesi bulunan sınıfların yalnızca gereken üyelerinin olması bellek kaybını da önler.
Alıntı:
> sırf boşlukla çoğaltılmış satır sayısı görünce içimdeki ses bana şöyle diyor:
Dert etme. :) Bir yarış yok. Üstelik boş satırların "kod satırı" sayıldıklarını hiç sanmıyorum.
Alıntı:
> 10 satır kod yazmışsın 50 satırda yazmışsın
Eğer daha okunaklı olacaksa lütfen öyle yap. :)
Alıntı:
> sen büyük bir program mı yazdın ? Böyle ancak kendini kandırırsın" diyor.
Hiçbir ilgisi yok. :)
Alıntı:
> 1.Dkv2'nin tasarımı nasıl olmuş ?
Alt işlerini başka sınıflara yaptırabilir. Örneğin bu kadar karmaşık bir üyeyle başa çıkman çok güç olacak:
string eş[string][string][string][string];
Veya, kullanıcılar birbirleriyle aynı türden olan bu kadar parametreyi doğru kullanma konusunda sıkıntı yaşayacaklar:
int veri_ekle(dchar[] veri_, dchar[] anahtar_ ,
dchar[] veriAdı_, dchar[] vTAdı_, dchar[] tAdı_ )
Onun yerine, işleri sınıflara paylaştırman daha iyi olur. Eğer veri tabanı "tablolardar oluşan bir kavram" ise, senin sınıfının da Tablo nesnelerinden oluşması gerekir.
Eğer tablo kavramı "anahtarlı verilerden" oluşan bir kavramsa, senin Tablo sınıfının da yalnızca o işten sorumlu olması gerekir.
Öyle yaparsan, veri_ekle işlevi'nin de belki de Tablo'nun bir üyesi olması doğru olur.
(Doğrusunu istersen, bunları yaşayarak görmen de önemli. O yüzden bazen sesimi çıkartmıyorum. Kodladığın her ay, bir önceki ay yaptıklarına bakıp "nasıl böyle yapmışım" diyebilirsin. Bana olmuştu, hâlâ da olur. :) )
Ayrıca, mantık olarak genelden özele doğru düşünmek daha kolay olabilir (eğer aynı parametreleri kullanacaksa, sıralarını değiştiriyorum):
veri_ekle(veri_tabani_adi, tablo_adi, anahtar, veri);
(veriAdı_'nı da anlamadım. Anahtar o değil mi?)
Alıntı:
> 2.Sizce anahtar ile anahtarın verisini silme işini nasıl yaparım.
veri_ekle'nin paraleli olmalı, ama veri bulunmamalı:
veri_sil(veri_tabani_adi, tablo_adi, anahtar);
Ama yukarıda da dediğim gibi, bu işlev Tablo'nun bir sınıfı olabilir. O zaman ne veri tabanı adı, ne de tablo adı gerekir:
benimTablom.veri_sil(anahtar);
Temiz... :)
Alıntı:
> 3.Birde normalde bir dosyadan belirli bir veri nasıl silinir ?
Silinmez (veya silinemez). Doğrusu: Bütün veri belleğe okunur. Bütün işlemler (silme dahil) bellekte yapılır. Sonra bütün dosya baştan tekrar yazılır.
Bu işlem sırasında önceki dosyanın üstüne yazmak yerine; o dosyanı ismi başka bir isme değiştirilebilir: veri_tabani.bak, veri_tabani.eski, vs.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]