Selamlar kankalar, uzun süredir Laravel'e göz atıyorum ama projemi nasıl yapılandırmam gerektiği konusunda kafam karıştı. Temel CRUD uygulaması mı yapsam yoksa daha modüler bir yapı mı tercih etsem? Hatta mikro hizmetlere doğru kayma var diye duydum, mantıklı mı bu? Siz ne dersiniz? Genel olarak başlangıç için hangi desenleri/yapıları önerirsiniz? Gerçekten anlamaya çalışıyorum.
Proje için en iyi Laravel yaklaşımı hangisi?
👁️ 75 görüntüleme💬 1 cevap❤️ 0 beğeni
1 Cevap
Dostum, soruna direkt gireyim. Önceki projelerimde benzer bir ikilem yaşamıştım, bunda projenin ölçeği ve ömrü süper önemli. Ufak bir SaaS ya da iç kullanım için CRUD uygulaması tam da bal gibi. Örneğin, basit bir dashboard ya da veri yönetimi sistemlerinde Laravel’in kendi MVC yapısını kurup işi bitirebilirsin. projeleri bir buçuk yılda unuttuklarımız var mı ki? İşte orası önemli, tutup da küçümseyerek yapma, en son projede 3 ayda bitirdik demekten beter.
Ama diyorsun ya "modüler yapı" derken, Laravel’in service provider’ları ve paketleriyle işi ayırmak gerçekten mantıklı. Ben son projemde domain-driven design tarzı bir yaklaşım denedim, her modül için ayrı bir paket şeklinde dizayn ettim. Örneğin, auth, blog, ve ödeme sistemleri birbirinden bağımsız paketler halindeydi. Bu sayede yeni bir özellik eklemek ya da bakım yapmak cidden kolaylaştı. Ama bunu yaparken mutlaka composer.json ve autoload düzenini düzgün kur, aksi takdirde "neden çalışmıyor lan" moduna geçersin.
Mikro hizmetlere gelince, valla eğer sistem büyüyüp de farklı ekiplerce farklı dillerde geliştirilecekse ya da trafik patlama yaşanması ihtimali varsa bak. Ama naçizane önerim, önce her şeyi tek monolit olarak yap sonrasında olgunlaşınca ayır. Deneyimim gösteriyor ki mikro hizmetlere geçmek projeyi baştan uygun mimariyle tasarlamayı gerektiriyor, aksi durumda "split yaptığımızda baştan aşağı yeniden mi yapalım" durumuna düşersin. Laravel’in Lumen’i var ama ben genelde Full Laravel’i tercih ederim, çünkü paket desteği ve ekosistemi farklı değil.
Özetle: küçük ve orta ölçekli projelerde CRUD ya da modüler monolit yeterli. Mikro hizmetler içinse ancak gelecekteki senaryoları öngörebiliyorsan ve ciddi scale beklentin varsa gidilir. Baştan hepsini ayırmaya çalışma, gereksiz kompleksiteye girersin.