Kullanılabilirlik açısından; kullanıcı her zaman salaktır düşüncesini benimseyeceksin. Yapacağın programı bilgisayar kullanmayı bilmeyen insanların dahi kullanabileceği şekilde hazırlayacaksın. Tabi bu ufak tefek paket programlar için geçerli, büyük projelerden bahsetmiyorum :) Program çalışırken oluşabilecek her ihtimali hesaplayıp hepsi için ne yapılması gerektiğini tanımlayacaksın. Kullanıcıdan bir alana string bir ifade yazmasını istiyorsan oraya yazılan veriyi string olarak kabul etmeyeceksin mesela. String olup olmadığını daima kontrol ettireceksin. Kullandığın dile ve veritabanına gre performans için yapılması gerekenleri bileceksin. En basitinden veritabanlarında index kullanımı gibi. Yazım konusunda kendine bir standart oluşturacaksın gelişigüzel her seferinde kafana gre yazmayacaksın. İlerleyen zamanlarda daha nceden yazmış olduğun projeleri düzenlemen veya takım halinde çalışırken diğer elemanların daha rahat geliştirebilmesi daha kolay olur. Mesela integer bir sayi1 değişkeni tanımlıyorsan bu değişkenin adını intSayi1 yapabilirsin veya string bir metin1 değişkeni tanımlıyorsan strMetin1 yapabilirsin. Objectlerde objObjeAdi kullanabilirsin. O değişkende ne tür bir veri taşıdığını daha kolay hatırlarsın. Mesela ben genelde birden fazla kelime içeren değişkenlerde ilk kelimenin baş harfi küçük diğerlerinin baş harfi büyük yazarım ve nedense genelde herkes bu şekilde kullanır. Mesela adSoyad veya eskiMetinBelgesi gibi. Nerde ne kullanacağını çok iyi bileceksin bu da tecrübeyle gelen birşey zaten. Mesela ekrana 10 kere merhaba yazdırmak için print "merhaba" satırını 10 kez yazarsan dosya boyutu şişer ama dngüden daha performanslı olur. Ama bunu 100e çıkartırsan dngü kullanarak dosya boyutunu düşürmen senin için daha performanslı olur. zellikle veritabanı ile iletişimde sorgular çok nemli. Bir veriyi veya veri kümesini birden fazla sql cümlesiyle çekebilirsin. Ama asıl kullanman gereken en kısa zamanda sonuç vereni olmalıdır. Saatlerce konuşulabilecek konu aslında ama şimdilik aklıma gelenler bunlar :) screw you guys! i"m goin" hoooome!

Projenin sürekliliği için kodun temiz ve anlaşılır olması bence en nemlisi. İleriyi düşünerek bazı noktalara açıklamalar eklenmeli. Başka türlü yazılan kod zamanla unutuluyor ve geliştirmek için nce idrak etmek gerekiyor. Değişken, method ve item isimleri de bir bakışta anlaşılacak şekilde seçilmeli. rn:"txtUniversiteFakulteAdi" gibi :)

Fikrete katılıyorum.. programcılıkta esas olan kod yığınını engellemektir. rneğin : 0'dan 100'e kadar bir cıktı ıcın 100 satır kod yazmak gerekir. ancak bir dngü kullanarak bunu tek satıra düşürebilirsin. baska bir esas konuda kodların acık olması yonunde. senden snra programla ilgilenıcek arkadasın programı net anlaması gibi.. bunun hakkında uzun uzun konusulabilir ancak aklıma gelenler suan bunlar hsyn. ackgz > skype

kullanıcı salaktır!! felsefesini benimsemekte nemli.

Her zaman esas kural en az sistem kaynağı kullanarak en çok işi yapabilmektir. Geçen bi yerde grmüştüm mesela bi işlemi yapabilmek için 8 satır kod yazıyor adam, diğeri aynı işlemi bir matematik formülü kullanarak 3 satıra düşürüyor. Bunun gibi vs. screw you guys! i"m goin" hoooome!

: Fikrete katılıyorum.. programcılıkta esas olan kod yığınını engellemektir. rneğin : 0'dan 100'e kadar bir cıktı ıcın 100 satır kod yazmak gerekir. ancak bir dngü kullanarak bunu tek satıra düşürebilirsin. baska bir esas konuda kodların acık olması yonunde. senden snra programla ilgilenıcek arkadasın programı net anlaması gibi.. bunun hakkında uzun uzun konusulabilir ancak aklıma gelenler suan bunlar Zaten her yiğit backdoor çakacağı için opensource yapmaz :) Genelde hack & warez programı yapanlar backdoor gmüyor. ne diyon?

Merhaba müritler. Esasen konuyu yanlış yere açtığım düşüncesindeyim ama hani benim gibi beginner-intermediate seviyeleri arasındakiler için iyi olacaktır. Bir programın iyi ktü olduğunu hani hangi kriterler belirler? Bir rnek vereyim fikir oluşması açısından, mesela en düşük sistemde en yüksek performansı sağlaması gibi. Var mıdır byle esaslar? Süngerler asla ktü bir gün geçirmez.