21 Aralık 2016 Çarşamba

Yazılım Mühendisliğinde İyi Alışkanlıklar


  • Her fonksiyondan önce açıklama satırı yapmak
  • Her "printf" fonksiyonun içine yazdıktan sonra "\n" ile bitirmek önemlidir tekrar kullanılabilirliği saglamak açısından
  •  Virgülden sonra bir bşoluk bırakmak okunurluğu artırır
  • Değişkenleri 31 karakterden uzun yapılmamalıdır bu taşınırlığı artırır
  • int farklı sistemlerde farklılık gösterebildiğinden, eğer kullanacağınız değerlerin 32767 aralığı dışında olmasını bekliyorsanız ve programınızı farklı sistemlerde kullanabilmeyi istiyorsanız long tamsayıları kullanın.
  • Hafızanın sınırlı ya da hızın gerekli olduğu performansa yönelik durumlarda küçük tamsayı boyutları kullanmak gerekebilir.
  • break ve continue eğer uygun bir biçimde kullanılırsa, aynı etkiyi yaratacak yapısal programlama tekniklerinden daha hızlı çalışırlar.
  • float ve double tipte değişkenleri parayla ilgili hesaplamalarda kullanmayınız.Ondalıklı sayıların kesin olarak gösterilememesinden dolayı hatalar oluşabilir.
  • -1 değeri yerine EOF ile test etmek daha taşınırlığı arttırır. ANSI standardına göre EOF negatif bir değerdir. Bu sebepten, EOF farklı sistemlerde farklı değerler sahip olabilir.
  • Tekerleği yeniden icat etmekten kaçının. Mümkün olduğunda yeni fonksiyonlar yazmak yerine ANSI C standart kütüphanesi içindeki fonksiyonları kullanın. Bu, program geliştirme zamanını azaltacaktır.
  • ANSI C standart kütüphanesi içindeki fonksiyonları kullanmak daha taşınır programlar yazmamıza yardımcı olur.
  • Geri dönüş tipi void olarak bildirilmiş bir fonksiyonun, bir değer geri döndürmesi bir yazım hatasıdır.
  • Her parametre için ( eğer tipi int değilse) parametre tipi ayrı ayrı belirtilmelidir. Eğer tip listelenmezse int olarak algılanacaktır.
  • Aynı tipte fonksiyon parametrelerini, double x, double y yerine double x , y olarak bildirmek.
  • double x, y biçiminde parametre bildirmek y parametresinin tipinin int olmasına sebep olur. Çünkü belirtilmeyen parametre tipi otomatik olarak int tipinde varsayılır.
  • Yanlış olmasa da fonksiyona aktarılan argümanlarla bu argümanların yerine kullanılacak parametrelerin aynı isimde olmamasına özen gösteriniz. Bu, belirsizlikten kurtulmamızı sağlar.
  • Bir fonksiyon içinde başka bir fonksiyon tanımlamak yazım hatasıdır.
  • Bir fonksiyon genellikle bir sayfadan daha uzun olmamalıdır. Hatta en iyisi yarım sayfadan uzun olmamalıdır. Küçük fonksiyonlar, yazılımın yeniden kullanılabilmesini sağlatır.
  • standart giriş/çıkış kütüphane fonksiyonlarının prototiplerini ve bunlar
  • tarafından kullanılan bilgileri tutar
  • sayıları yazılara, yazıları sayılara çeviren, rastgele sayılar üreten, hafıza ayrılmasını sağlayan fonksiyonların prototiplerini tutar     string işlemlerini yapan fonksiyonların prototiplerini tutar  
  • Anlamlı fonksiyon isimleri ve anlamlı parametre isimleri kullanmak programları daha      okunur yapar ve yorumların çok fazla kullanılmasını engeller.
  • ANSI C standart kütüphanesi içindeki fonksiyonları kullanmak daha taşınır programlar yazmamıza yardımcı olur.
  • Performansın önemli olduğu durumlarda yinelemeden kaçının.Yineleme çağrıları fazladan vakit ve hafıza gerektirir.
  • printf ("%7d %13d\n”, j, s[j] );            //ilk degeri 7.sırada yazar 6 bosluk sonra 13.sırada ikinci degeri yazar
  • Sembolik sabitler için yalnızca büyük harfler kullanın. Bu, sembolik sabitlerin program içinde göze çarpmasını sağlayarak, programcıya bunların değişken olmadıklarını hatırlatacaktır.
  • Dizileri referansa göre çağırma, performans açısından oldukça mantıklıdır. Eğer diziler değere göre çağırma ile geçirilmiş olsaydı, her elemanının kopyası geçirilecekti. Büyük ve sıklıkla çağrılan dizilerde bu oldukça fazla vakit alacaktı ve fazladan hafızaya ihtiyaç duyacaktı.
  • printf("\n\n%p\n",&dizi);         /*Dizinin adresi Dizi[0] ile aynıdır 
  • %p dönüşüm belirteci, adresleri onaltılık sistemde yazdırır.
  • Her gösterici isimden önce * kullanılarak bildirilmelidir.
  • Beklenmeyen sonuçlarla karşılaşmamak için göstericilere ilk değer atamak.
  •            int y = 5;                                                                                                                                                                                       int *yPtr;                                                                                                                                                        yPtr=&y;   // yPtr artık y yi gösterir
  • Bir veri tipini depolamak için gerekli olan byte sayısı sistemler arasında farlılık gösterebilir.Veri tiplerinin büyüklüğüne bağlı programlar yazarken ve bu programlar farklı sistemlerde çalışacaksa veri tiplerini depolamak için gerekli olan byte sayısına sizeof kullanarak karar verin.
  • sayilar[4]   ,  *(sayilar + 4), nPtr[4] ,  *(nPtr + 4)     Hepside sayilar dizisinin 4. elemanını gösterir
  • NOT: & ile adresi alırız .. * ile degiskenin degerini gösteririz
  • NOT: Adresi yazdıracaksak printf ile   burada %p kullanırız Hexadecimal olarak yazdırırız adresi
  • d İşaretli bir tamsayıyı(onluk sistemde) gösterir. i İşaretli bir tamsayıyı(onluk sistemde) gösterir.   (Not: i ve d yalnızca scanf ile kullanıldıklarında farklıdır)  o İşaretsiz bir tamsayıyı(sekizlik sistemde) gösterir.
  • x ya da X İşaretsiz bir tamsayıyı(onaltılık sistemde) gösterir.X, 0-9 rakamlarının ve A-F harflerinin gösterilmesini ve x, 0-9 rakamları ve a-f harflerinin gösterilmesini sağlar.
Share: