Hal 95:O anda geçici çözüm olarak kullandığı try…catch bloğunu kodun orasında ebediyen unutabilir.

Yazılım geliştiriciler de aslında birer insandır. Bu yüzden çok doğal olarak gün içerisinde sıkıldıkları, bunaldıkları anlar olur. Bu tip anlarda iş verimliliği düşer ve hatalı kodların oluşması söz konusu olur. Tedbir almak kolaydır.

  • Ekip olarak çalışılması halinde iç iletişimi ön plana çıkartarak ilerlemek,
  • Kodları çift kişi olarak geliştirmek(Biri bakar diğer yazar sonra roller değişir),
  • Kod gözden geçirmelerde bulunmak,
  • Test odaklı geliştirme gibi yaklaşımları kullanmak
  • Çeşitli kod kalite araçlarından faydalanmak

vb….

Ancak bazı hallerde geliştiriciler Lone Wolf Developer modunda takılırlar. Bu gibi bir halde kişinin kendi disiplinindeki kaçakların doğuracağı olumsuz sonuçlar vardır. İçi boş bir try…catch bloğu bunlardan birisidir. Bir anlık dikkatsizliğin veya o andaki vakadan bir an önce kurtulmanın ya da çabucak kodun kalan kısımlarını işletebilme isteğinin bir sonucu olabilir.

O anda yetiştirilmesi gereken iş için çalışma zamanı hatasının gerçektende bir önemi olmayabilir. Aslında oluşan istisnai durum daha sonradan değerlendirilecek ve gerekli tedbirler alınacak şekilde ilerlenebiliyorsa boş bir catch bloğu gerçekten işe yarar. Ne var ki çalışma zamanı hatalarının Exception mekanizması içerisinde yer almasının bazı dezavantajları da vardır. Herşeyden önce çalışma zamanına ek yük getirir. Belki de oluşan hatalar Exception Handling’ e başvurulmadan önlenebilir.

Bir dosyanın yerinde olup olmadığını kontrol ederken, “catch bloğuna düşüyor ve hatta FileNotFoundException alıyorsak dosyanın yerinde olmadığından emin olabiliriz” düşüncesiyle hareket etmek doğru bir yaklaşım değildir.

Aslında önlenebilecek bir takım hataların try…catch bloklarına başvurulmadan çözülmesi mümkün olabilir.  Kötü olansa geçici olarak uygulanan try…catch bloğunun kodun o kısmında ebediyen unutulabilmesidir. Bunun bilinen sonuçlarından birisi Boat Anchor isimli anti-pattern’ dir. Diğer yandan Error Hiding isimli anti-pattern için de bir gerekçe olarak düşünülebilir. Hatta AR-GE amaçlı başlayıp ürün haline gelmiş pek çok projede Lavaflow Anti-Pattern’ i oluşurken bu şekilde kullanılıp unutulan kod parçaları veya geçici çözümlere rastlamak son derece olasıdır.

Anahtar Kelimeler (Bunlara Bir Bakalım)

  • Anti-Patterns
  • Boat Anchor
  • Error Hiding
  • Lavaflow
  • Exception Handling
  • Test Güdümlü Programlama (Test Driven Development)
  • Pair Programming
  • eXtreme Programming
  • Code Review

Hal 95:O anda geçici çözüm olarak kullandığı try…catch bloğunu kodun orasında ebediyen unutabilir.” üzerine 4 yorum

    1. Ameliyata başlandığında sorun netleştirilmiştir. Kimse cerraha sen başla bakalım karaciğere operasyona o arada kalpte de sorun görürsen bi zahmet ona da el at demiyordur sanırım :))

  1. Evet bu çok olur. Kendi çalıştıım sektör itibariyle gördüğümü söyleyeceğim. Birileri size ne istediğini net olarak (sihirli kelime bu ne istediğini biliyorsa :) ) anlatabiliyor ise inanın “ben yazılımcıyım” diye o şirkete girmişlerin/kabul edilmişlerin yarısından çok fazlası işini çok temiz yapabilir. Ama sizin karşınızdeki sen hele bir yaz ben onun üzerinden analize devam ederim modünda ise çorbaya dönen kodun içinde daha neler unutulmaz ki :)

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


üç + = 12

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>