En başta eldeki sorunu düşünün. YAGNI veya SOLID ilkelerini çok iyi uygularsanız, daha sonra kendinizi incitebilirsiniz. Hepimizin anlayabileceğimizi umduğum bir şey, tüm sorunlara uyan "tek" tasarım yaklaşımının olmaması. Bir mağaza "herkese uyan tek beden" olarak ilan edilen bir şapka sattığında bunun kanıtını görebilirsiniz, ancak kafanıza uymuyor. Ya çok büyük ya da çok küçük.
Bunun yerine, SOLID'in ele almaya çalıştığı ilkeleri ve sorunları anlamak daha iyidir; YAGNI'nin ele almaya çalıştığı ilke ve sorunların yanı sıra. Birinin başvurunuzun mimarisiyle, diğerinin ise geliştirme süreciyle bir bütün olarak ilgilendiğini göreceksiniz. Bazı durumlarda üst üste gelmekle birlikte, belirgin şekilde farklı problemlerdir.
YAGNI (İhtiyacınız Olmayacak [tuhaf Amerikan kısaltması]), geliştiriciden zaman tasarrufu yapmakla ilgileniyor, ancak daha basit bir ahşap köprü sadece 3 metrelik bir dereye yayılacak olan bir köprüye çelik takviyeli beton temeller ekliyor ince. Bir mil genişliğinde bir nehri kaplıyorsak ve birkaç traktör römorkunu desteklememiz gerekiyorsa, elbette bu ekstra temel çalışmasına ihtiyacımız var. Temelde, YAGNI size mevcut ihtiyaçlar için daha büyük resme ve tasarıma bakmanızı söylüyor . Çok karmaşık bir şey yapma sorununu ele alıyor, çünkü müşterinin henüz belirlemediği bir takım potansiyel ihtiyaçları öngörüyoruz.
SOLID, köprünün parçalarının birbirine tam olarak uyduğundan ve zaman içinde korunabildiğinden nasıl emin olduğumuzla ilgilidir. SOLID ilkelerini ahşap köprüye ve çelik takviyeli beton köprüye uygulayabilirsiniz.
Kısacası, bu iki kavram mutlaka birbiriyle çatışmaz. Olduklarına inandığınız bir durumla karşılaştığınızda, büyük resme bakmanın zamanı geldi. Sonucunuza bağlı olarak, SOLID ilkelerinin bir kısmını ortadan kaldırmaya karar verebilir veya gerçekten ihtiyacınız olduğuna karar verebilirsiniz.
SOLID principle vs YAGNI
mı?