Yeni Başlayanlar İçin MVC Çerçeve Eğitimi: Nedir, ArchiYapı ve Örnek
MVC Çerçevesi nedir?
The Model Görünümü Denetleyicisi (MVC) framework, bir uygulamayı üç ana mantıksal bileşene ayıran bir mimari desendir: Model, Görünüm ve Denetleyici. Bu nedenle kısaltması MVC'dir. Her mimari bileşen, bir uygulamanın belirli geliştirme yönlerini ele almak için oluşturulmuştur. MVC, iş mantığını ve sunum katmanını birbirinden ayırır. Geleneksel olarak masaüstü grafik kullanıcı arayüzleri (GUI'ler) için kullanılırdı. Günümüzde, web teknolojisindeki MVC mimarisi, web uygulamalarının yanı sıra mobil uygulamalar tasarlamak için de popüler hale geldi.
MVC'nin Tarihçesi
- MVC mimarisi ilk olarak 1979 yılında Trygve Reenskaug tarafından tartışıldı
- MVC modeli ilk olarak 1987 yılında Smalltalk programlama dilinde tanıtıldı.
- MVC ilk kez 1988 tarihli bir makalede genel bir kavram olarak kabul edildi.
- Son zamanlarda MVC modeli modern web uygulamalarında yaygın olarak kullanılmaktadır.
MVC'nin Özellikleri
- Kolay ve sürtünmesiz test edilebilirlik. Son derece test edilebilir, genişletilebilir ve takılabilir çerçeve
- MVC modelini kullanarak bir web uygulaması mimarisi tasarlamak, HTML'nizin yanı sıra URL'leriniz üzerinde de tam kontrol sağlar
- ASP.NET, JSP, Django vb. tarafından sağlanan mevcut özelliklerden yararlanın.
- Mantığın net bir şekilde ayrılması: Model, Görünüm, Denetleyici. Uygulama görevlerinin ayrılması, yani iş mantığı, Ul mantığı ve giriş mantığı
- SEO Dostu URL'ler için URL Yönlendirme. Anlaşılabilir ve aranabilir URL'ler için güçlü URL eşleme
- Test Odaklı Geliştirme Destekleri (TDD)
MVC Archidoku
İşte MVC framework'ünün detaylı mimarisi:
Üç önemli MVC bileşeni şunlardır:
- Model: Tüm verileri ve ilgili mantığını içerir.
- Görünüm: Verileri kullanıcıya sunar veya kullanıcı etkileşimini yönetir
- Denetleyici: Model ve Görünüm bileşenleri arasında bir arayüz
Gelin bu bileşeni detaylı olarak görelim:
Görüntüle
Görünüm, uygulamanın veri sunumunu temsil eden kısmıdır.
Görünümler, model verilerinden toplanan verilerle oluşturulur. Bir görünüm, modelin çıktı sunumunu kullanıcıya sunması için bilgi vermesini ister.
Görünüm ayrıca grafikler, diyagramlar ve tablolardaki verileri de temsil eder. Örneğin, herhangi bir müşteri görünümü metin kutuları, açılır menüler vb. gibi tüm kullanıcı arayüzü bileşenlerini içerecektir.
kontrolör
Denetleyici, uygulamanın kullanıcı etkileşimini yöneten kısmıdır. Denetleyici, kullanıcıdan gelen fare ve klavye girişlerini yorumlayarak model ve görünümün uygun şekilde değişmesi konusunda bilgi verir.
Bir Kontrolör, durumunu güncellemek için modele komutlar gönderir (Örneğin, Belirli bir belgeyi kaydetme). Denetleyici ayrıca görünümün sunumunu değiştirmek için ilgili görünüme komutlar da gönderir (Örneğin, belirli bir belgenin kaydırılması).
Model
Model bileşeni verileri ve onunla ilgili mantığı saklar. Denetleyici bileşenleri veya herhangi bir ilgili iş mantığı arasında aktarılan verileri temsil eder. Örneğin, bir Controller nesnesi müşteri bilgilerini veritabanından alacaktır. Verileri işler ve veritabanına geri gönderir veya aynı verileri oluşturmak için kullanır.
Görünümlerden gelen isteğe yanıt verir ve ayrıca denetleyicinin kendisini güncelleme talimatlarına da yanıt verir. Aynı zamanda verilerin korunmasından sorumlu olan modelin en düşük seviyesidir.
MVC Örnekleri
Günlük hayattan Model View Controller örneğini görelim:
Örnek 1
- Bir restorana gittiğinizi varsayalım. Evinizde mutlaka yapabileceğiniz yemekleri mutfağa gidip hazırlamayacaksınız. Bunun yerine oraya gidip garsonun gelmesini beklersiniz.
- Şimdi garson yanınıza geliyor ve siz yemeği sipariş ediyorsunuz. Garson sizin kim olduğunuzu ve ne istediğinizi bilmiyor, sadece yemek siparişinizin detaylarını yazmış.
- Daha sonra garson mutfağa gider. Mutfakta garson yemeğinizi hazırlamıyor.
- Aşçı yemeğinizi hazırlar. Garson siparişinizi masa numaranızla birlikte ona verir.
- Pişirin ve sizin için yemek hazırlayın. Yemeği pişirmek için malzemeleri kullanır. Siparişinizin sebzeli sandviç olduğunu varsayalım. Daha sonra buzdolabından temin ettiği ekmek, domates, patates, biber, soğan, lokma, peynir vb.
- Yemeği son olarak garsona teslim edin. Artık bu yemeği mutfağın dışına taşımak garsonun görevi.
- Artık garson hangi yemeği sipariş ettiğinizi ve bunların nasıl servis edildiğini biliyor.
Bu MVC mimarisi örneğinde,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Bir MVC modeli örneğine daha bakalım,
Örnek 2
Araba sürüş mekanizması MVC modelinin bir başka örneğidir.
- Her araba üç ana parçadan oluşur.
- Görünüm= Kullanıcı arayüzü : (Vites kolu, paneller, direksiyon simidi, fren vb.)
- Kontrolör- Mekanizma (Motor)
- Model- Depolama (Benzin veya Dizel tankı)
Araba motordan çalışır ve yakıtı depodan alır, ancak yalnızca bahsedilen kullanıcı arayüzü cihazlarını kullanarak çalışır.
Popüler MVC web çerçeveleri
Bazı popüler MVC çerçevelerinin bir listesi:
- raylar üzerinde yakut
- Django
- CakePHP'nin
- Yii
- KirazPy
- Bahar MVC'si
- katalizatör
- Raylar
- Zend Framework
- CodeIgniter
- laravel
- Yakıt PHP
- Symphony
MVC'nin Avantajları: Temel Faydalar
İşte MVC mimarisini kullanmanın başlıca faydaları:
- Genişletilmesi ve büyütülmesi kolay kolay kod bakımı
- MVC Model bileşeni kullanıcıdan ayrı olarak test edilebilir
- Yeni müşteri türleri için daha kolay destek
- Çeşitli bileşenlerin geliştirilmesi paralel olarak gerçekleştirilebilir.
- Bir uygulamayı üç birime bölerek karmaşıklığı önlemenize yardımcı olur. Model, görünüm ve denetleyici
- Yalnızca web uygulaması isteklerini tek bir denetleyici aracılığıyla işleyen bir Ön Denetleyici modeli kullanır.
- için en iyi desteği sunar. test odaklı geliştirme
- Büyük web tasarımcıları ve geliştirici ekipleri tarafından desteklenen Web uygulamaları için iyi çalışır.
- Endişelerin temiz bir şekilde ayrılmasını sağlar (SoC).
- Arama Motoru Optimizasyonu (SEO) Dostu.
- Tüm sınıflar ve nesneler birbirinden bağımsız olduğundan bunları ayrı ayrı test edebilirsiniz.
- MVC tasarım modeli, bir denetleyicideki ilgili eylemlerin birlikte mantıksal olarak gruplandırılmasına olanak tanır.
MVC kullanmanın dezavantajları
- Bu modeli okumak, değiştirmek, birim testi yapmak ve yeniden kullanmak zor
- Çerçeve gezintisi, kullanıcıların MVC'nin ayrıştırma kriterlerine uyum sağlamasını gerektiren yeni soyutlama katmanları sunduğu için bazen karmaşık olabilir.
- Resmi doğrulama desteği yok
- Artan karmaşıklık ve veri yetersizliği
- MVC'yi modern kullanıcı arayüzüyle kullanmanın zorluğu
- Paralel programlama yapabilmek için birden fazla programcıya ihtiyaç vardır.
- Birden fazla teknoloji bilgisi gereklidir.
- Denetleyicideki birçok kodun bakımı
3 katmanlı Archidoku ve MVC Archidoku
Parametre | 3 Katmanlı Archidoku | MVC Archidoku |
---|---|---|
Yakın İletişim | Bu tip mimari desenler hiçbir zaman veri katmanıyla doğrudan iletişim kurmaz. | Tüm katmanlar üçgen topolojisini kullanarak doğrudan iletişim kurar. |
kullanım | 3 katmanlı: istemcinin, veri katmanlarının ve ara yazılımın fiziksel olarak ayrı platformlarda çalıştığı web uygulamalarında yaygın olarak kullanılır. | Genellikle tek bir grafik iş istasyonunda çalışan uygulamalarda kullanılır. |
ÖZET
- MVC, bir uygulamayı 1) Model, 2) Görünüm ve 3) Denetleyici olarak ayıran bir mimari desendir
- Model: Tüm verileri ve ilgili mantığını içerir.
- Görünüm: Verileri kullanıcıya sunar veya kullanıcı etkileşimini yönetir
- Denetleyici: Model ve Görünüm bileşenleri arasında bir arayüz
- MVC mimarisi ilk olarak 1979 yılında Trygve Reenskaug tarafından tartışıldı
- MVC mimarisi Java son derece test edilebilir, genişletilebilir ve takılabilir bir çerçevedir
- Bazı popüler MVC çerçeveleri Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP vb.'dir.