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.
İlgili Web Mimarisi soruları
- SSR, SSG ve CSR arasındaki farklar nelerdir?
- Monorepo nedir? Avantajları, dezavantajları ve araçları nelerdir?
- Bir kullanıcı girişinin uçtan uca akışını (frontend'den veritabanına) anlatın.
- Büyük dosya yükleme akışını nasıl tasarlarsınız? Presigned URL nedir?
- Backend for Frontend (BFF) deseni nedir, ne zaman kullanılır?
- WebSocket, Server-Sent Events (SSE) ve polling arasındaki farklar nelerdir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.