Spaghetti Code AntiPattern ve Kaçınma Yolları

Merhaba arkadaşlar, anti-patternleri incelemeye devam ediyoruz. Bu yazımızda Spaghetti Code anti-patterni incelemeye ve çözüm yolları sunmaya çalışacağız.

spaghetti-code-ipcmag
spaghetti-code-ipcmag
Adından da anlaşılacağı üzere kodun okunabilirliğinin ve anlaşılabilirliğinin zor olduğu, kodun karmakarışık hale geldiği yapılardır. Çoğu kişinin aklına “Spaghetti Code” deyince “GOTO” keywordu gelse de kapsamı çok daha geniş olabilir. Genelde OOP nimetlerinden yararlanılmadığında ve süreç odaklı geliştirmeler yapıldığında ortaya çıkar.
jakub-dziubak-L7POzOAoaQY-unsplash
jakub-dziubak-L7POzOAoaQY-unsplash

Spaghetti Code Zararları Nelerdir?

  • Kodun okunması ve takibi çok zordur
  • Genelde yeniden kullanılabilirliği düşüktür
  • Inheritance, Polymorphism, Abstraction, Encapsulation gibi temel OOP özellikleri kullanılmaz
  • Yeni geliştirme maliyeti yüksektir
  • Bakım maliyeti yüksektir
  • Genelde ekibe yayılmayan, yazan kişinin hakimiyetindeki kodlardır
mae-mu-Pvclb-iHHYY-unsplash
mae-mu-Pvclb-iHHYY-unsplash

Spaghetti Code Kaçınma Yolları

  • Ekibin teknik seviyesinin arttırılması ve bilgi paylaşımı için ortam hazırlanmalı ve teşvik edilmelidir.
  • Etkili eleştiri yapmaktan çekinilmemelidir. Genel olarak antipatternlerin oluşmasında, bir kişinin izole çalışması, sorgulanmaması, baskı vb etken olabilir.
  • Kodu yazmadan önce düşünmek ve tasarım aşamasına zaman ayırmak
  • Sürekli refactor süreçleri
  • Etkili code review süreçleri ile bu gibi yapıların üretime çıkmadan engellenmesi gerekir
  • Hali hazırda üretimde olan böyle bir yapı varsa fayda-maliyet dengesine göre yeniden yazmak / refactor süreçlerine gidilmelidir.
  • Kodun kullanılmayan kısımlarını analiz edin (etki alanı vb.) ve bunlardan kurtulun, bu hem refactor sürecinde hem de başka antipatternlere yol açmama konusunda yardımcı olur
  • Genel kabul görmüş prensipler, kodlama standartları ve isimlendirme kurallarını sorgulayarak uygulamaya çalışın

Umarım faydalı olmuştur arkadaşlar, kalın sağlıcakla … ?

Kaynakça
https://sourcemaking.com/antipatterns/spaghetti-code
https://www.buraksenyurt.com/post/AntiPatterns-Ders-Notlarc4b1m
https://medium.com/architectural-patterns/spaghetti-code-anti-pattern-nedir-25ea2cbbf90

Written By

Bir önceki günden daha iyi olmak için çalışarak kendimi geliştirmek, öğrendiklerim ve öğreneceklerim ile yazılım sektöründe büyük ölçekli ve uluslararası projelerde kendimden söz ettirmek istiyorum.

More From Author

You May Also Like

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir