Ömer Özbay
Thumbnail
Frontend

Modern Frontend: Micro-Frontends ve Monorepo Yaklaşımları

15 Nisan 2026 12 dk okuma 2.5K görüntülenme

Frontend ekipleri büyüdükçe ve projeler karmaşıklaştıkça, geleneksel tekil (monolith) SPA uygulamaları yönetilemez hale gelir. Bu noktada Micro-Frontends mimarisi ve Monorepo yönetim araçları (Turborepo, Nx) devreye giriyor.

Neden Monorepo?

Farklı repolara bölünmüş frontend projeleri, paylaşılan tasarım sistemlerinde (Design Systems) bağımlılık tiranlığı yaratır. Bir butondaki ufacık değişikliğin 5 farklı projeye dağıtılması haftalar alabilir. Monorepo ise tüm paylaşılan paketleri ve uygulamaları tek bir repoda toplayarak güncellemeleri saniyelere indirir.

// Turbo Pipeline Örneği (turbo.json) { "$schema": "https://turbo.build/schema.json", "pipeline": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"] }, "lint": {}, "dev": { "cache": false, "persistent": true } } }

Micro-Frontends (Module Federation)

Webpack Module Federation (veya Vite kullananlar için Native Federation), çalışma zamanında (runtime) kod paylaşımına izin verir. Böylece A takımının geliştirdiği 'Sepet' komponenti, B takımının 'Ürün Detay' uygulamasında anında güncellenmiş olarak render edilir. Üstelik sıfır build maliyetiyle!

Pragmatik Bir Geçiş Stratejisi

  • Gereksiz Kompleksiteden Kaçının: Sadece 2-3 kişilik bir ekibiniz varsa doğrudan Micro-Frontend'e atlamak devops cehennemi yaratır. Bunun yerine düzenli klasör yapısıyla yönetilen sıkı bir Monolith tercih edin.
  • Bileşen Sınırlarını Eğitime Dayandırın: Micro-frontends'i takımların iş planına göre bölün (Bounded Context). Ekranda rastgele görsel alanları takımlara atamayın.
  • CI/CD Boru Hattı Hayatidir: Turborepo'nun Remote Caching özelliğini kullanarak, bulut ortamında sadece değişen uygulamaların build alınmasını sağlayın. Vercel veya kendi self-hosted çözümünüz ile dakikalar süren build'leri saniyelere indirebilirsiniz.

Sonuç: Monorepo Micro-Frontend İle Buluşunca

Doğru planlandığında, Monorepo projelerde organizasyonu sağlarken, Module Federation runtime esnekliğini getirir. İkisini birlikte kullanarak ölçeklenebilirlik devrimini yaşayabilirsiniz.

Faydalı buldunuz mu? Bu içeriği kendi ağınızla paylaşarak bana destek olabilirsiniz.