Sansür, bir toplumun kendine olan güvensizliğini yansıtır ve otoriter rejimlerin belirgin bir özelliğidir.

--Potter Stewart

18.02.2009

Açıklama Satırı Yazmadan Kod Yazana 10 Puan Bonus

Bilgisayar Mühendisini mezun olduktan sonra, yaşadığı sanal dünyadan gerçek dünyaya hazırlayan, okuduğu teorik bilgileri pratiğe dökmesini sağlayan yegane işlev, genelde ikişer haftalık periyotlarla geliştirdiği, üstüne bir de raporun yazdığı programlama ödevleridir. 

Öğrencinin istenen programı hatasız geliştirmesinin yanı sıra yaptıklarını anlatan ödev raporu ve kodun içinde -alışkanlık olması ve asistanın okuyabilirliğini arttırmak için- kodun bakılabilirliğini kolaylaştırdığı düşünülen açıklama satırlarını yazması beklenir. Hatta kodu yazıp açıklama satırını yazmayı ihmal eden öğrencinin en az 10 puanın gideceği garanti edilir. Hal böyle olunca mühendis adayı ya kodu yazarken açıklama satırlarını da aynı anda yazmayı kendine ilke edinir ya da kod yazma işi bittikten sonra uygun gördüğü yere açıklama satırlarını serpiştirir.

İki hafta bir sürenin son 3-4 günü ödevini yapmaya başlayan öğrenci ise ödev yetiştirmeye çalışmaktan ne Martin Fowler'dan ne "Refactoring"den -kodu adam etme demeyi daha çok seviyorum- ne de o kadar çok açıklama satırı yazmaması gerektiğinden haberi vardır. İşin ilginci ödevi veren de bundan bi haberdir...

Benim de mezun olduktan sonra namını duyduğum Martin Fowler "Refactoring Improving the Design of Existing Code" kitabında güzel konulara değinirken bu açıklama satırları konusuna da değiniyor. "Açıklama satırı kötü kokan kodun üzerine sıkılmaya çalışan deodoranttır" diyor. Doğru :)

Kitapta sınıf, metot ve değişken isimlendirmelerinin üstlenilen görevi anlatacak nitelikte yapılması gerektiğinden bahsediliyor. Bir kod parçasının işlevi açıklanma gereği duyuluyorsa o kod parçasının ayrı bir metota taşınmasını ve yeni metotun isminin açıklayıcı nitelikte olması gerektiğini söylüyor. Yazılması gereken açıklama satırının "nasıl"ı değil diğer geliştiriciler için "neden" sorusuna cevap vermesi gerekliliği vurgulanıyor.

Bol açıklama satırsız kodlar...