MVC nedir? (Model-View-Controller)
Kodlamayı öğrenmeye ilk başladığınızda, genellikle anlaşılması zor olan terminolojiden etkileneceksiniz. İnsanların kodlamayı öğrenmeyi bırakma nedenlerinden birinin, bir kısmı terminoloji olduğu için öğrenme eğrisi oldukça dik olduğu için inanıyorum.
Ancak, terminolojiyi anlamaya başladığınızda, programlamanın gerçekten çok mantıklı ve anlaşılması kolay olduğunu göreceksiniz. Bence yeni başlayanlar için problemin bir kısmı, durumu daha da fazla karıştıran belli ifadelerin etrafındaki bağlam eksikliğidir. Umarım bu, programlama terminolojisini açık ve gerçek dünya örnekleri ile açıklayan birçok yazının ilkidir.
MVC
Model-View-Controller (MVC), Yazılım ve Web geliştirme dünyasında sıkça duyduğunuz bir terimdir, ancak ne anlama geldiğini anlamıyorsanız kafa karıştırıcı olabilir.
Model-View-Controller aslında bir Yazılımın farklı yönlerini ayıran bir tasarım desenidir. Bu ayrım, kodun yeniden kullanılabilirliğini ve daha yapılandırılmış bir uygulama mimarisini teşvik eder.
Örneğin, bir web sitesini 3 ana bileşene ayırabilirsiniz.
- İlk olarak, “Görünüm” Kullanıcıya sunulan şeydir. Bu genellikle HTML, CSS ve Javascript'tir.
- İkincisi, “Model” web sitesinin veri tabanı ile nasıl konuştuğudur.
- Üçüncüsü, “Kontrolör”, “Görünüm” ve “Model” i birbirine bağlayan şeydir. Dolayısıyla, bir kullanıcı veritabanından bir şey istediğinde, “Kontrolör” bu talebi “Görünüm” den alır ve “Model” e gönderir.
NEDEN BU AYRIMI YAPMAK İSTİYORSUN?
Model, View ve Controller arasındaki bu ayrılık, küçük projeler için fazla mazeret gibi görünebilir ve tüm dürüstlükle muhtemelen öyledir. Ancak, projeniz büyüyünce ayrılmanın faydasını gerçekten hissedersiniz.
Kodunuzu bu üç farklı alana ayırmanın bir çok faydası vardır:
- Kodunuzu korumak kolaydır
- Projede birden fazla kişi çalışabilir ve yalnızca doğrudan onları ilgilendiren dosyaları düzenlemeleri gerekir
- Kodunuzu "yazdırabilirsiniz" çünkü hepsi yeniden kullanılabilir durumdadır.
MVC ilk çalışmalarından kaynaklanan Trygve Reenskaug de Xerox PARC bir parçası olarak, Smalltalk İşte Trygve en 1979 yılında sistemin MVC açıklaması .
MODEL-VİEW-CONTROLLER ÖRNEĞİ
Model-View-Controller tipik bir durumda nasıl bozuluyor.
Servis Web Uygulaması olarak büyük bir Yazılımımız olduğunu hayal edin. Uygulama binlerce kod satırından oluşur. Kodun tekrarlanmasını önlemek ve Uygulamayı sürdürülebilir tutmak için gelişme için bir yapı sağlamamız gerekir.
Web Uygulamamız kullanıcı verilerini oluşturmak, okumak, güncellemek ve silmek için yoğun bir şekilde kullanılır bu modeli. Modelin sadece veritabanına içeri ve dışarı malzeme koymakla ilgilenmesi gerekir.
Web Uygulamasının ön ucunda kullanıcı verileri, formlar, resimler ve metinler gösterilmelidir. Görünüm, yalnızca içeriğin ekranda görüntülenmesiyle ilgilenmelidir.
Model ile Görünüm arasında veriyi Modelden almak, değiştirmek ve ardından Görüntüye vermek için bir şeye ihtiyacımız var. Bu Denetleyici . Kontrolör, neyin nereye gittiğini ve nasıl çalıştığını organize etme mantığını yapan orta erkektir.
- Model veritabanı ile kolları etkileşimi
- Görünüm şeyler Kullanıcıya nasıl temsil edildiği kolları
- Denetleyici ve Veritabanı ve Kullanıcı ile etkileşime girer gelen verileri alır ve bizim Uygulama çeşitli fonksiyonları düzenler
MVC GERÇEK HAYATTA
Bu yüzden yukarıdaki açıklama biraz karmaşık görünüyorsa, endişelenmeyin! Bana göre, Yazılım geliştirme kavramları, onlar hakkında soyut bir şekilde öğrendiğimde her zaman karmaşık görünüyor. İnanıyorum ki, bu konsepti yalnızca net bir gerçek dünya örneğine uygulayabiliyorsunuz.
MVC, Grafiksel Kullanıcı Arayüzü tabanlı bir yazılım için bir metodoloji olarak başladı , ancak aynı zamanda İnternet'in nasıl çalıştığının da temel bir bölümünü oluşturdu.
Jeff Atwood , her web sitesinin bu modeli takip ettiğini göstererek İnternet'in çekirdek bir parçası olarak MVC'nin harika bir benzetmesini sunmaktadır. Model-View-Controller'ı Anlamak bölümünü okuyabilirsiniz .
Temel olarak, her web sitesi HTML, CSS'den oluşur ve tarayıcıda görüntülenir. HTML ve CSS'den ayrılma, MVC deseninin iki parçasıdır.
HTML Modeli başka bir deyişle, asıl içeriği web sitesinin bilgisini işler.
CSS, renkleri veya yazı tipi boyutlarını ayarlayan aptal sunum katmanı olan görünümdür .
Tarayıcı, kontrolördür ve verileri formlar veya Javascript ile yönetir.
Gerçek hayatta MVC'nin bir başka örneği WordPress'tir. Artık WordPress, yapısı veya kod kalitesi nedeniyle genellikle alkışlanmıyor, ancak yeni bir tema oluşturmak çok kolay olduğu için kısmen hızlı bir şekilde büyüdü.
Bir WordPress teması gerçek WordPress çekirdeğinden ayrılmıştır. Bu, geliştiricinin temasını gerçek uygulamadan ayrı tutmasını sağlar ve temaları kolayca değiştirebileceğiniz anlamına gelir.
MVC'DEKİ ANLAŞMAZLIKLAR
MVC modelini anladıktan sonra, onu birçok farklı uygulamada işte görebileceksiniz. MVC, esasen endişelerin bir ayrımıdır, ancak başkalarının bu ayrımları nasıl uyguladığını görmeye başladığınızda, evrensel olarak kabul görmüş bir yöntem olmadığını hemen göreceksiniz.
Çoğunlukla, modelin incelikleri hakkında fazla endişelenmem. Temiz, tekrar kullanılabilir ve mantıksal kodu korumak, aradığınız sonuçtur.
MVC Mİ?
Jeff'in görevinde belirttiği gibi, MVC uygulamasının gerçek turnusol testi, başvurunun “skinnable” olup olmadığıdır. Başka bir deyişle, bir parçayı çıkartıp başka bir parçayla değiştirebiliyor musunuz?
Bu karmaşıksa veya işe yaramazsa, muhtemelen tamamen gerçek bir MVC modeli uygulamamışsınızdır.
SONUÇ
Gerçekten Yazılım geliştirmeye girdiğinizde, çok sayıda tasarım deseni olduğunu ve MVC yapısı gibi şeyleri yapmanın doğru yollarını tanıdığınızı göreceksiniz. İlk başta bu kavramları reddetmek kolaydır, çünkü onlarsız bu kadar elinizdedir. Ancak zamanla, bu denenmiş ve test edilmiş yöntemleri kullanmak için birçok neden olduğunu keşfedeceksiniz.
Çalışmanızı MVC modelini kullanarak yapılandırmanın birçok faydası olduğuna inanıyorum:
- Uygulamanıza yapı sağlar . Bir proje büyüklük kazanmaya başladığında, yapıyı ve kuralları uygulamanız gerekir, aksi takdirde her şey bir karışıklık haline gelir. Bir yapıyı uygulayarak, daha fazla korunabilir kodunuz olacaktır.
- Uygulamanız için tanınabilir bir yapı sağlar . MVC, tanınabilir bir yapıdır, başka birinin projesine bakabilir ve anında nasıl çalıştığını anlamaya başlayabilirsiniz. Tanınan bir yapıyı takip ederek, iyi bir Geliştiricinin uygulamanızın yapısını anladığından ve daha hızlı bir şekilde alabildiğinden emin olursunuz.
- Kaygıların ayrılması . Büyük bir uygulama oluştururken, birkaç şeyden emin olmak istersiniz. En önemli yönlerden biri, bir şeyi değiştirmek istediğinizde farklı yönleri ayırabilmenizdir. Jeff'in işaret ettiği gibi, eğer bu ayrılığı yapamazsanız, muhtemelen bir noktada çizgileri bulanıklaştırmışsınızdır.
Yazılım Geliştirme'de işler çok hızlı değişiyor ve çalışmanızın sonsuza dek sürmesini bekleyemezsiniz. Her yeni gün, Dünün çalışmalarını iyileştirme fırsatı sunar ve bu nedenle çalışmanızı bu sürekli yenilenmeyi teşvik edecek şekilde yapılandırmanız gerekir.
MVC gibi bir tasarım deseni kullanmak, gelecekteki gelişmeler için bu modülerliğe sahip olmanızı sağlayacaktır.