MVC mimarisi nedir? Modern web uygulamalarında nasıl karşılık bulur?

Cevap

MVC (Model-View-Controller), uygulamayı üç sorumluluğa ayıran bir mimari desendir:

  • Model: veri ve iş kuralları. Veritabanı erişimi, doğrulama.
  • View: kullanıcıya gösterilen arayüz. Veriyi sunar, iş mantığı içermez.
  • Controller: isteği karşılar, modeli çağırır, sonucu uygun view'a veya yanıta dönüştürür.
İstek -> Router -> Controller -> Model (DB)
                       |
                       v
                View / JSON yanıt
// Express'te basit bir controller
export async function show(req, res) {
  const product = await Product.findById(req.params.id); // Model
  if (!product) return res.status(404).render("404");
  res.render("products/show", { product });             // View
}

Modern karşılıkları

  • Rails, Laravel, Django (MTV), ASP.NET MVC klasik sunucu taraflı MVC'dir.
  • SPA + API mimarisinde backend genelde View'siz çalışır: controller JSON döner, view rolünü React/Vue üstlenir.
  • Büyüyen projelerde "fat controller" sorununu önlemek için iş mantığı service katmanına taşınır: Controller -> Service -> Repository.

Faydası sorumlulukların ayrılması, test edilebilirlik ve ekip içinde paralel çalışabilmektir.

  1. SSR, SSG ve CSR arasındaki farklar nelerdir?OrtaWeb MimarisiFull Stack
  2. Monorepo nedir? Avantajları, dezavantajları ve araçları nelerdir?ZorWeb MimarisiFull Stack
  3. Bir kullanıcı girişinin uçtan uca akışını (frontend'den veritabanına) anlatın.OrtaWeb MimarisiFull Stack
  4. Büyük dosya yükleme akışını nasıl tasarlarsınız? Presigned URL nedir?ZorWeb MimarisiFull Stack
  5. Backend for Frontend (BFF) deseni nedir, ne zaman kullanılır?OrtaWeb MimarisiFull Stack
  6. WebSocket, Server-Sent Events (SSE) ve polling arasındaki farklar nelerdir?OrtaWeb MimarisiFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle