Selam,
Yazılım dünyasında over engineering ve antipattern diye de kavramlar var. Meslektaşlarımız, yazılımı bir kalıba sokmaya çalışarak aslında çok kısa sürede çok daha hızlı bir biçimde kod geliştirecekleri gerçeğinden uzaklaşıyorlar.
Over engineering ve antipattern konuları ise yine farklı prensip ile tasvir edilmeye çalışılmış; YAGNI ( you aint gonna need it - buna ihtiyacın olmayacak). Bu prensip ile baktığında, yazacağın kodun mimarisini tasarlayabilirsin. Herhangi bir ezbere kalıba kendini sokmadan.
Eğer kurumsal bir iş yapıyorsan yani; ekipçe kodun sürdürebilirliği sağlanıyorsa, teorikte anlatılan kalıplar geçerli olabiliyor. Bu sebeple hem kod kalitesini korumak hem de az önce bahsettiğimiz sürdürebilirliği korumak adına, koda harcanan eforu arttırmak mantıklı.
Özetlemek gerekirse, kendine bir proje geliştiriyorsan ve biraz daha sağlam temelleri olan bir mimari hedefliyorsan bilmen gereken konular SOLIDtir. Fakat solid bize herhangi bir mimariyi işaret etmez daha çok bir fikri aşılar.
Controller altına kod yazmak evet bakıldığında hoş gözükmez. Controllerin işini kabaca söylersek requesti alıp responseu vermektedir. Bir servis katmanına neden ihtiyaç duyuyoruz? Bunu düşünmemiz lazım. Herkes servis yapısı deyince kodu bir kere yazmak olarak tasvir eder. Aslında olay çok başka olabilir.
Konudaki özetle servise taşıma gereği bir ezber değil bahsetmiş olduğum SOLID metriklerine uymayı işaret eder. Interceptor, AOP, DI gibi mekanizmalara erişimi basitleştirir.