Kod Kalitesi : C kodunuzda bariz hatalar neler ?

Başlatan Erol YILMAZ, 30 Nisan 2011, 10:06:27

Erol YILMAZ

C kodunuzda hatalar var mı?

Kodunuzu yapıştırın analiz etsin.


http://gimpel-online.com//cgi-bin/genPage.py?srcFile=intro.txt&cgiScript=analyseCode.py&title=Introduction+and+Welcome&intro=Introducing+the+testing+facility&compilerOption=online32.lnt&includeOption={{quotedIncludeOption}}

OG

Bir taraftan da adam "kod bank" sahibi olsun   :)
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

picmanya

hocam bu tür bir iş kodun durumuna göre yerine göre sakat olabilir.
şu anda dünya üst düzey teknolojisi yazılım üzerinden kendini döndürüyor.
her kod her yere öyle şapladanak yapıştırılmamalı.
yararından çok zararı görülebilr.
yazılımını tam vermediler diye şu anda Türkiye 20 milyar dolarlık F35 projesinden vazgeçme noktasına geldi.
Zorlu ya uçak yapabilirmisin teklifini götürüyorlar.
bir kaç kişi duydum sırf iyi kod geliştirdiklerinden microsoft astronomik rakamlara bu adamları Ülkemizden alıp götürmüş.
üst düzey kodlamada sistem komple web ağına kapatılıyor
yinede elektrik hattından bilgi kaçırabilen yazılımlar olduğunu işitiyorum.
belkide kimileri komple elektriğinide kapalı bir sistemle üretip yazılımını geliştiriyor olabilir.

Erol YILMAZ

Saklamaya değer kodunuzun içeriğini değil ama sadece konu başlığını söyleyebilir misiniz ?

OG

Alıntı yapılan: Allegro - 30 Nisan 2011, 10:28:37
Saklamaya değer kodunuzun içeriğini değil ama sadece konu başlığını söyleyebilir misiniz ?
Flip Flop  :D
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Erol YILMAZ

FF, 1930 yılında bulunmuş. Çok ticari değeri yok.

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Erol YILMAZ

yok yani, çok korkuyoruz, Korku kültürü yerleşmiş biraz...

Dünya, "Türkiye kod yazmasa" ilerlemeyecek gibi...

RTOS ları inceliyorum,
Adamlar ne kod sistemleri geliştirmişler,
Bizim yaptıklarımız yazılım tekniği manasında çok geride kalıyor.
Zira C yi iyi bilen insan sayımız bile çok az.

KOdumuzu kapmasınlar diye de ayrıca çekiniyoruz.
Bu korkuyu bırakıp bi an önce dünyanın geldiği seviyeye gelmemiz şart...

Muasır medeniyetleri geçemeyiz başka türlü  :)

CoşkuN

Alıntı yapılan: Allegro - 30 Nisan 2011, 10:40:05
yok yani, çok korkuyoruz, Korku kültürü yerleşmiş biraz...

Dünya, "Türkiye kod yazmasa" ilerlemeyecek gibi...

RTOS ları inceliyorum,
Adamlar ne kod sistemleri geliştirmişler,
Bizim yaptıklarımız yazılım tekniği manasında çok geride kalıyor.
Zira C yi iyi bilen insan sayımız bile çok az.

KOdumuzu kapmasınlar diye de ayrıca çekiniyoruz.
Bu korkuyu bırakıp bi an önce dünyanın geldiği seviyeye gelmemiz şart...

Muasır medeniyetleri geçemeyiz başka türlü  :)

Gömülü yazılımlar alanında geri olduğumuz konusuna katılıyorum. Ama kimsenin ticari anlamda geliştirdiği kodları bir yerlere kopyalamasından çekinmesinin eleştirilecek bir yanı olduğunu düşünmüyorum. F35 projesi örneği zaten verilmiş. Düşünebiliyor musunuz mesala Aselsan'daki mühendislerin böyle bir siteye "aa bakalım yazdığımız kodlar nasılmış" diye kodları yüklediklerini...

vsalma

Büyük projeleri gerçekleştiren şirketlerde bu analizleri yapan tool lar bulunuyor zaten. Offline olarak analiz edip rapolar sunuyor. Üretilen raporlar doğrultusunda tekrar üzerinden geçiliyor.   

Erol YILMAZ

Bu kod analiz toolunu biraz açıklayayım.

Bu tool sizin projede kullandığınız bütün kaynak kodlarını değil,
harici dosya dahil etmeden çalıştırabildiğiniz kadarını analiz ediyor.
yani ben kodumu komple buraya yazayım da, analiz etsin durumu yok.

Misal yazılmış kodun da bi kısmını analiz etmek için kullanılabilir,
Kullanılmayada bilir, Olabilesi olan hataları kendi tecrübemizle buluruz.

Geçenlerde IAR dan davetiye gelmişti,
demek ki yazdığım kodları görüp dayanamadılar beni istiyorlar :)))))

Erol YILMAZ

char linbus_calculate_checksum (char* databytes, char message_length)
{
   char i;
   char sum;

   sum = 0;

   for (i=0; i<message_length; i++)
   {
      sum += databytes[i];
   }

   sum = 0-sum;

   return(sum);
}


CCS nin örneklerinin içinden alınmış olan bu koda,

sadece
"Info 818:  Pointer parameter 'databytes' (line 1) could be declared as pointing to const"
uyarısı verdi.
Anlamını bilen var mı ? :)

Tagli

Kodun içinde databytes içine bir atama yapılmamış. Yani bu veri değişmiyor. Verilen tavsiye de buna dayanıyor. Diyor ki: "Sen zaten databytes'ı değiştirmiyorsun. O zaman bunu sabit olarak tanımla. Sonradan yanlışlıkla değiştirme tehlikesini ortadan kaldırmış olursun."

Öte yandan, itiraf etmeliyim ki benim de en umursamadığım ayrıntılardan biridir sabit tanımlama yapmak. Konuyla ilgili bir diğer mesele de nesne yönelimli programlamada "data encapsulation" diye geçer. Bunların ikisi de ilk bakışta gereksiz ve saçma gibi görünse de, ileride çıkabilecek sorunlara karşı ciddi koruma sağlarlar.
Gökçe Tağlıoğlu

Erol YILMAZ


Erol YILMAZ

Benim kodum yurtdışına çıkmasın,
Kendi editörümde herşeyi bitireyim diyenleri de düşündük.
PC-LINT in editörde çalışan versiyonunu temin ettik !

https://rapidshare.com/files/460099814/LINT.rar

Keil'de denedim çalışıyor.