Etiket arşivi: boat anchor

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