Laravel Mülakatına Nasıl Hazırlanılır
Kıdemli (Senior) Laravel mülakatları sadece sözdizimi (syntax) bilginizi test etmez. Ölçeklenebilir sistemler tasarlama ve gerçek dünyadaki trade-off'ları yönetme yeteneğinizi test eder.
Temel CRUD işlemlerinin ötesine geçmelisiniz. Yazılımı ölçeklenebilir bir şekilde sunabileceğinizi kanıtlamanız gerekir.
Mevcut zamanınıza göre bu çalışma planını kullanın.
- 1 ila 2 gün: Request Lifecycle, Eloquent N+1 problemleri, Queues, Validation ve Authorization konularına odaklanın.
- 3 ila 5 gün: Caching, Database Transactions, Testing ve API Design konularını ekleyin.
- 6 ila 10 gün: Her şeyi çalışın. Queues, events, jobs ve policies kullanarak küçük bir proje geliştirin.
Ustalaşılması Gereken Temel Teknik Alanlar:
The Service Container
Şu üçü arasındaki farkı bilin:
• bind(): Her seferinde yeni bir örnek (instance) döndürür.
• singleton(): Tüm süreç boyunca aynı örneği döndürür.
• scoped(): İstek başına bir örnek döndürür. Bu, Laravel Octane gibi araçlar için hayati önem taşır.
Eloquent ve Veritabanları
Büyük tablolarda all() kullanmayı bırakın. Belleği yönetmek için chunk() veya lazyById() kullanın.
N+1 problemlerini anlayın. Bunları düzeltmek için eager loading (with) kullanın.
Ne zaman Eloquent, ne zaman Query Builder kullanmanız gerektiğini bilin. Model yükünü (overhead) önlemek için ağır raporlama işlemleri için Query Builder kullanın.
Queues ve Arka Plan İşleme (Background Processing) Yavaş veya güvenilmez olan her şey bir kuyruğa (queue) aittir. Production kuyrukları için Redis kullanın. Worker'larınızı ve başarısız olan işleri (failed jobs) izlemek için Laravel Horizon kullanın. İşlere (jobs) veri aktarırken, bayat (stale) veriden kaçınmak için tam model nesneleri yerine ID'leri aktarın.
Güvenlik ve Mimari
Mass assignment için $request->all() kullanmayın. $request->validated() kullanın.
Sanctum (SPA'lar ve basit token'lar için) ile Passport (tam OAuth2 için) arasındaki farkı anlayın.
Controller'larınızı ince (thin) tutun. İş mantığını (business logic) Services veya Actions yapılarına taşıyın.
The Senior Signal Junior bir geliştirici bir aracı nasıl kullanacağını bilir. Senior bir geliştirici ise neden o aracı diğerine tercih ettiğini bilir.
Mülakatınızda sadece bir cevap vermeyin. Trade-off'ları açıklayın. Farklı yaklaşımların artılarını ve eksilerini karşılaştırın. Bu, teknik kararlarınızın iş üzerindeki etkisini anladığınızı gösterir.
Kaynak: https://dev.to/nazar_boyko/how-to-prepare-for-a-laravel-interview-8dn
