dryasarsafkan.com
Yaşar Safkan
Yazılım · Sistemler · Eğitim Software · Systems · Teaching
YazılarWriting

Hataları Halının Altına Süpürmek…

25 August 2015

O kadar zamandır o kadar çok defa kullandım ki, “Happy Path Programcılığı” lafını bir yerden mi duydum, kendim mi uydurdum hatırlamıyorum. Boğaziçi Tarzancası konuşma alışkanlığını her ne kadar yenmeye çalışsam da, tam olmuyor görüleceği üzere. Türkçe olarak, “Mutlu Yol Programcılığı” diyebiliriz buna.

Nedir bu “Mutlu Yol Programcılığı”? (Bundan sonra MYP diyelim adına, bakarsın insanlar kullanır, tutar…)

MYP, kod yazarken, olası hata durumlarından hiçbirinin oluşmayacağını varsayarak, her şeyin mükemmel çalışacağını düşünmek demektir.

Bu bir hastalıktır. Bunun yayılması, işin sonrasında, test ve hata ayıklama aşamalarında işimizi inanılmaz zor bir hale getirir.

Hastalığın semptomları nelerdir?

– Programa, dışarıdan (dosya, kullanıcı, ağ…) üzerinden herhangi bir veri girişi olduğunda, bunun geçerli olup olmadığının denetlenmemesi. Mesela, kullanıcıya sayı girmesini söyledik. Girdiği şeyin gerçekten sayı olup olmadığını kontrol etmedik.

– Hata alabilen bir sistem fonksiyonu veya metodu çağırdığımızda, hata durumunu ciddiye almamak. Özel olarak, exception atan dillerde, atılan exception’ı “öylesine” yakalamak.

– Kütüphane kodu veya o şekilde kullanılacak bir kod parçasında, dış parametrelerin (özel olarak “public” metodların parametreleri) kontrol edilmeden kullanılması.

Mesela, sıklıkla görülen bir örnek:

BufferedReader reader = null;

try {

    reader = new BufferedReader(new File(“hede.txt”));

} catch (Exception e) {

}

Yazma anını izlerseniz, olay şöyle gelişir: Önce:

BufferedReader reader = new BufferedReader(new File(“hede.txt”));

Yazılır. Sonra, bu satır hata verince, etrafına try-catch konur. Sonra, dışarıda kullanabilmek için reader tanımı dışarı alınır. Sonra oluşan “bunun değeri bazen belirsiz oluyor” hatasından kaçmak için, “= null” kısmı eklenir.

Oldu mu? Evet, mükemmel bir MYP oldu.

Böyle bir kod parçasını görüp de, “yapma bunu böyle” derseniz, önünüze gelecek ilk tepki, “ya ne yapayım”dır. Neyse ki bunun cevabı var!

MYP’nin en kötü tehlikesi, oluşan hata durumu, halının altına süprüldüğü için, programın alakasız bir yerde, alakasız bir hatayla çatlayacak olmasıdır. Sonrasında, hatayı ayıklamak için, “lan bu hata nasıl oluyor da oluyor” diye kodu satır satır didiklemek gerekir. Izdırap.

MYP’den kaçınmak için, bazı prensipleri şöyle sıralayabiliriz:

İşin gerçeği şu ki, MYP ile yazacağınız kod miktarı, tüm hata durumlarını doğru şekilde ele aldığınız durumda yazacağınız kod miktarının yarısından azdır. Ancak, MYP ile hata ayıklamada harcayacağınız süre, düzgün hata ele alımıyla yazılımış kodun iki katından kesin fazla, benim kestirimime göre en azından dört katı olacaktır.

Kendinize ve takım arkadaşlarınıza acı çektirmeyin.

Hataları halının altına süpürmeyin.

Yapmaaaayıııııın öyleeeeeee!!!!