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... 

3 yorum:

  1. Gusel bir paylasim olmus tesekkurler ...

    YanıtlaSil
  2. Herhalde yorumsuz kod yazabilecek yazılımcı oranı %1'dir. Eğer geri kalan %99'unu gaza getirirseniz onlar da yorumsuz kod yazmaya çalışacaklardır. Yorumsuz ve kötü yazılmış kodla uğraş dur ondan sonra.

    YanıtlaSil
  3. Gaza getirmek değil de eğitebilmek diyelim. Öğrenciyi iyi eğitirseniz, ilk başta Refactoring'in (ben kodu adam etme diyorum) önemini, daha sonra yazılan kodun neden kendisini anlatması gerektiğini iyice açıklayabilirseniz kötü yazılmış kodla uğraşıp durmazsınız.

    Sizin %99 kötü kod yazıyor ki yorumlarına bakarak ne yapmak istediklerini anlıyorsunuz. Yorumlu yazsa da kodun kalitesi düşük...

    Yorumlu olması kod kalitesinden geçer not almasını etkilememeli. Adam edilmiş kod geçer not almalı düşüncesindeyim. Kaliteyi kod adam etme yöntemlerini öğreterek arttırmak mümkün.

    YanıtlaSil