Tabi bu yazılımı mimarisinin pek etkilememekte, implementasyonları daha çok ilgilendirmekte. Yani ille de hızlıca yapacağım derken sadece istekleri karşılayacak bir uygulama geliştirmek elbette ileride genişletilebilirliği etkileyecektir. Bir mimarisi olmayan yazılım tamamen implementasyon çöplüğüne dönecektir.
İşlevsel bir soyut mimari ile uygulamamızın altyapısını hazırlayabilmişsek, sıra bu soyut yapıyı somutlaştırmaya gelir. Yani implementasyonları yazmaya başlarız. Bu noktada bu yaklaşımları tasarlayan bilge kişiler tarafından bazı doktrinler yayınlamışlardır. Bunlardan biri "You Ain't Gotta Need It" kelimelerinin baş harflerinden oluşan YAGNI'dir. Türkçesi "ileride buna ihtiyaç duymayacaksın" dır. Burada bizden fütüristik bakış açısıyle ileride lazım olacağını öngördüğümüz ama henüz lazım olmayan implementasyonları kesinlikle yapmamamızı öneriyor. Çünkü:
- Senin fikirlerin takip edilemez, kodu yazarken sınfın ileride ne yapması gerektiğini düşünürsün, kesinlikle ne yapması gerektiğini değil.
- Zamanın kıymetlidir. Kodunla boş zaman geçireceğine asıl yapman gereken işi yapmalısın.
- Yazdıktan sonra bunların tamamını kullanmayacaksın, bu implementasyonu yapmak için harcadığın zaman çöpe gitmiş olacak, bunu okuyan herkesin de zamanı boşa bitmiş olacak, bu kodlar boşuna uzayda yer tutacak.
Hızlı kod implementasyonu yapmak için en iyi yol ihtiyacın kadarını implement etmek. En az bug ile kod yazmak için en iyi yol da en az implementasyonu yapmak.
You’re not gonna need it!
Hiç yorum yok:
Yorum Gönder