Antipattern Nedir?

2 Mar

Antipattern kavramını yazılım geliştirme sürecinde programcıların günü kurtarmak adına uyguladıkları kötü çözümler olarak adlandırabiliriz.

Antipattern denilen düzensiz işleyişlerin bilgi ve tecrübe eksikliğinden kaynaklandığını söyleyebiliriz. Bilgi ve tecrübe eksikliği yazılım geliştiricide veya takım yöneticisinde olabilir. Sonuçta kötü etkilenen, yazılım süreci olmaktadır.

Yazılım geliştirirken yapılan Antipattern hataları sonucunda biriken problemler, yazılım ilerledikçe çığırından çıkmaya başlar. Yazılıma eklenmesi istenen yeni özellikler ekibin başına dert olmaya başlar. Hatalar artar, sinirler bozulur ve neticede ortaya konulan ürünün müşteriyi yeterince tatmin etmediği anlaşılır. Müşteri isteklerini yerine getirmeyen yazılım ise başarısızdır.

Kodlama sırasında sık karşılaşılan bazı antipattern kavramlarını şu şekilde belirtebiliriz.

  • Analysis Paralysis: Proje analizine harcanan fazla zaman.
  • Overengineering: Bir problemi olduğundan daha zor olarak algılamak.
  • Smoke and Mirrros: Yanıltıcı araçlar kullanmak.
  • God Object: Çok fazla üye içeren nesneler.
  • Golden Hammer: Bir çözümü birçok probleme uygulamaya çalışmak.
  • Hard Coding: Koda gömülen ve değiştirilemeyen değişkenler.
  • Boat Anchor: Kullanılmayan ancak lazım olur diye tanımlanan kodlar.

Daha fazla antipattern için buradan faydalanabilirsiniz.

Bu örneklere baktığımda yazılım geliştirme sürecini bu sıkıntılardan kurtaracak olan can simidinin çevik süreçler olduğunu görüyorum.

Gerçek anlamda uygulanan çevik sürecin hem tasarım aşamasında uygulanan yöntemler hem kodlama aşamasında uygulanan Test Driven Development tekniği hem de yazılıma uygulanan doğru tasarım desenleri ile antipattern denen illetten kurtulmanın mümkün olacağını düşünüyorum.