MVC Nedir?
İngilizce: MVC (Model-View-Controller)
MVC, uygulama kodunu Model, View ve Controller katmanlarına ayırarak arayüz, veri ve akış sorumluluklarını netleştirir.
MVC Nedir?
MVC (Model-View-Controller), uygulama kodunu üç sorumluluk alanına ayıran bir mimari desendir. Model veri ve iş kurallarını, View kullanıcıya gösterilen arayüzü, Controller ise isteği alıp doğru modeli ve görünümü koordine eden akışı temsil eder.
Bir web uygulamasında kullanıcı “siparişlerim” sayfasına girdiğinde Controller isteği karşılar, Model sipariş verisini veritabanından alır, View de bu veriyi HTML olarak gösterir. Böylece veritabanı sorguları, arayüz şablonu ve yönlendirme mantığı aynı dosyada birbirine karışmaz.
Katmanlar Nasıl Çalışır?
- Model: Veri yapısı, doğrulama, iş kuralları ve veritabanı işlemleriyle ilgilenir.
- View: Kullanıcının gördüğü ekranı üretir; HTML, mobil ekran veya JSON şablonu olabilir.
- Controller: İstekleri yorumlar, gerekli modeli çağırır ve hangi yanıtın döneceğine karar verir.
MVC, katmanların birbirinden tamamen habersiz olduğu anlamına gelmez. Ama sorumlulukların ayrılması test yazmayı, ekran değiştirmeyi ve iş kuralı eklemeyi kolaylaştırır.
Kullanım Alanları
Ruby on Rails, Laravel, ASP.NET MVC ve Spring MVC gibi birçok framework bu yaklaşımı farklı yorumlarla kullanır. Modern frontend yapılarında klasik MVC birebir görünmeyebilir; yine de state, görünüm ve etkileşim akışını ayırma fikri yaşamaya devam eder.
MVC bir tasarım deseni olarak özellikle orta ve büyük ölçekli uygulamalarda kodun okunabilir kalmasına yardım eder. Küçük prototiplerde ise fazla katmanlandırma gereksiz ağırlık yaratabilir; karar uygulamanın karmaşıklığına göre verilmelidir.
İlgili Terimler
DDD, karmaşık iş alanlarını domain modeli, bounded context ve ortak dil etrafında yazılım mimarisine taşıyan tasarım yaklaşımıdır.
Repository DeseniRepository deseni, veri kaynağı ayrıntılarını iş mantığından saklayarak uygulamanın veriye tutarlı arayüzlerle erişmesini sağlar.
Tasarım DeseniTasarım deseni, tekrar eden yazılım tasarımı problemleri için dili ve projeyi aşan, denenmiş çözüm yaklaşımını tarif eder.