Programlama Metodolojileri - Hata Ayıklama
Bir programdan veya yazılımdan hataları tanımlama ve kaldırma denir debugging. Hata ayıklama ideal olarak test sürecinin bir parçasıdır, ancak gerçekte programlamanın her adımında yapılır. Kodlayıcılar, devam etmeden önce modüllerinin en küçük hatalarını ayıklamalıdır. Bu, test aşamasında ortaya çıkan hataların sayısını azaltır ve test süresini ve çabasını önemli ölçüde azaltır. Bir programda ortaya çıkabilecek hata türlerine bakalım.
Sözdizimi Hataları
Syntax errorsbir programdaki gramer hatalarıdır. Her dilin, program yazmak için tanımlayıcılar oluşturmak, ifadeler yazmak vb. Gibi kendi kuralları vardır. Bu kurallar ihlal edildiğinde hatalar çağrılırsyntax errors. Birçok modernintegrated development environmentsprogramınızı yazarken sözdizimi hatalarını belirleyebilir. Aksi takdirde, programı derlediğinizde gösterilecektir. Bir örnek alalım -
Bu programda, prod değişkeni, derleyici tarafından ortaya atılan bildirilmemiştir.
Anlamsal Hatalar
Semantic errors ayrıca denir logical errors. İfadede sözdizimi hatası yoktur, bu nedenle doğru şekilde derlenecek ve çalışacaktır. Ancak mantık doğru olmadığı için istenen çıktıyı vermeyecektir. Bir örnek ele alalım.
Satır 13'e bakın. Burada programcı, 0'a bölmekten kaçınmak için bölenin 0 olup olmadığını kontrol etmek ister. Ancak, karşılaştırma operatörü == yerine, atama operatörü = kullanılmıştır. Şimdi her defasında "if ifadesi" doğru olarak değerlendirilecek ve program "0'a bölemezsiniz" şeklinde çıktı verecektir. Kesinlikle amaçlanan şey değil!
Mantıksal hatalar herhangi bir program tarafından tespit edilemez; istenen çıktı elde edilemediğinde programcının kendisi tarafından tanımlanmaları gerekir.
Çalışma Zamanı Hataları
Çalışma zamanı hataları, programı çalıştırırken oluşan hatalardır. Bu, programın sözdizimi hatası içermediği anlamına gelir. Programınızın karşılaşabileceği en yaygın çalışma zamanı hatalarından bazıları şunlardır:
- Sonsuz döngü
- 0'a göre bölme
- Kullanıcı tarafından yanlış değer girildi (örneğin, tamsayı yerine dize)
Kod Optimizasyonu
Kalitesini ve verimliliğini artırmak için kodun değiştirildiği herhangi bir yöntem denir code optimization. Code qualitykodun ömrünü belirler. Kod uzun süre kullanılabiliyor ve muhafaza edilebiliyorsa, üründen ürüne taşınıyorsa, kalitesi yüksek ve daha uzun ömürlü olduğu kabul edilir. Aksine, bir kod parçası yalnızca kısa süreler için kullanılabilir ve korunabilirse, örneğin bir sürüm geçerli olana kadar, düşük kaliteli ve kısa ömürlü olduğu kabul edilir.
Bir kodun güvenilirliği ve hızı belirler code efficiency. Kod verimliliği, bir yazılımın yüksek performansının sağlanmasında önemli bir faktördür.
Kod optimizasyonuna iki yaklaşım vardır -
Intuition based optimization (IBO)- Burada programcı programı kendi becerisine ve deneyimine göre optimize etmeye çalışır. Bu, küçük programlar için işe yarayabilir, ancak programın karmaşıklığı arttıkça sefil bir şekilde başarısız olur.
Evidence based optimization (EBO)- Burada, performans darboğazlarını bulmak için otomatik araçlar kullanılır ve ardından ilgili kısımlar buna göre optimize edilir. Her programlama dilinin kendi kod optimizasyon araçları seti vardır. Örneğin, Java kodunu optimize etmek için PMD, FindBug ve Clover kullanılır.
Kod, yürütme süresi ve bellek tüketimi için optimize edilmiştir çünkü zaman azdır ve bellek pahalıdır. İkisi arasında bir denge olmalı. Eğertime optimization bellek üzerindeki yükü artırır veya memory optimization kodu yavaşlatır, optimizasyon amacı kaybolur.
Yürütme Süresi Optimizasyonu
Kullanıcılara hızlı hizmet sağlamak için kodu yürütme süresi için optimize etmek gereklidir. İşte yürütme süresi optimizasyonu için bazı ipuçları -
Yerleşik yürütme süresi optimizasyonuna sahip komutları kullanın
İf koşulu yerine anahtarı kullanın
Döngü yapıları içindeki işlev çağrılarını en aza indirin
Programda kullanılan veri yapılarını optimize edin
Bellek Optimizasyonu
Bildiğiniz gibi veriler ve talimatlar hafızayı tüketir. Veri dediğimizde, ifadelerin sonucu olan ara verilere de atıfta bulunur. Ayrıca, programı veya optimize etmeye çalıştığımız modülü oluşturan komutların sayısını da takip etmemiz gerekir. İşte bazı ipuçlarımemory optimization -
Yerleşik bellek optimizasyonuna sahip komutları kullanın
Kayıtlarda saklanması gereken değişkenlerin kullanımını minimum tutun
Birçok kez çalıştırılan döngülerin içinde global değişkenleri bildirmekten kaçının
Sqrt () gibi CPU yoğun işlevleri kullanmaktan kaçının