AngularJS MVW (Model,View,Whatever Works For You)Tasarım Mimarilerini Anlamak

AngularJS MVW (Model,View,Whatever Works For You)Tasarım Mimarilerini Anlamak

Programlama dillerinde,özellikle büyük çaplı projelerde iş karmaşııklığına çözüm bulmak amacı ile Nesne Yönelimli Programlama tekniği geliştirilmişti.OOP,artık profesyonel programlama dillerinde bir standart haline gelmiştir.Ancak iş geliştirme sürecinin daha da hızlanması,daha kolay şekilde yapılması ve projelerin sürdürülebilir olmasını sağlamak amacıyla  daha da farklı tasarım  mimari geliştirilmiş,geliştirilmeye de devsam etmektedir.

Tasarım Mimarisi İhtiyacı

Tasarım mimarileri;temel prensipte kullanıcı arayüzü ile arkaplan kodlarını birbirinden ayırmak için üretilmiştir.Yani daha ilkel bir tanım yapmak istersek;bir projede birkaç kişi varsa ,bunlardan birisi arayüzü tasarlar ve kodlar,birisi veritabanı mimarisini tasarlar,birisi de sitenin arkaplan kodlarını yazıp siteyi ayağa kaldırır.İşte bu üç kişiyi bir araya getirip projeye üretmek için bir iş planı oluşturmak gerekir.Buradaki iş planı ofis içindeki yönetim anlamında değildir,projenin hangi yaklaşım ile hazırlanacağıdır.

Tasarım mimarileri işte bu noktada yardıma koşar.Projenin ve ekibin durumuna göre en uygun iş modeli seçilir.Hatta bazen seçmeye bile gerek kalmaz.Mesela ufak bir projeniz varsa ,her ne kadar amatörce karşılansa da eski usül metotlarla bütün kodları tek bir yara yığarak ,tek başınıza projenin tüm aşamasını kendiniz kodlayıp bitirebilirsiniz.Bunu yaparken de projenizin ilerleyen zamanlarda daha da değiştirilmeyeceğini veya buna ihtiyaç olmayacağını düşünme gibi bir hataya düşeriz.Ancak kendinizi parçalara ayırıp bir tasarım mimarisi oluşturmadıysanız ,artık o projenin kodlarını sizden başkası anlayamaz.Proje sonuçta bir şekilde yapılmıştır,ama artık o proje ne geliştirilebilir,ne ölçeklenebilir ne de sürdürülebilirdir.

MVW kavramı ile 3 farklı mimari anlaşılır.Bunlar;MVC,MVVM ve MVP’dir.AngularJS,bunlardan hangisini yapmak istiyorsanız onu seçmenize olanak sağlar.Bu 3 yapıyı şema üzerinde inceleyelim…

MVC,MVP ve MVVM Karşılaştırması

  • MODEL:Uygulamaya ait iş mantığının olduğu ;verilerin işlendiği ve doğrulandığı katmandır.Verilerin kaydedilmesi ,güncellenmesi ve çekilmesi gibi işlemler bu katmanda yapılır.
  • VIEW:Adından da anlaşılacağı üzere kullanıcıların görmüş olduğu ve etkileşime girebildiği nesnelerin bulunduğu katmandır.MODEL’den gelip ara katmanlara işlenen veriler burada gösterilir.
  • CONTROLLER,PRESENTER,VIEWMODEL:MODEL ve VIEW arasında bir köprü görevindedir,çift taraflı veri taşımacılığı yapar.

Dikkat etmemiz gereken en önemli husus;VIEW ile MODEL’in birbiri ile tamamen ayrık olduğudur.Yani web sayfasının arayüzü ile sitenin verileri arasında bir bağ yoktur.Bağı CONTROLLER,PRESENTERveya VIEWMODEL kurar.Pratikteki örnewğinde ise ;web sayfasının ön yüzünü programlayan kişinin,sitenin veritabanı sistemini kodlayan kişi ile ortak bir iş yapmasına gerek yoktur.Yani bugün yayında olan bir web sayfanız varsa ,MVC mantığı ile programlamışsanız,sitenizin  veritabanında herhangi bir değişiklikm yapmadan doğrudan arayüzü değiştirebilirsiniz.

Şimdi bizi asıl ilgilendiren MVVM olduğu için buna yoğunlaşalım.MVVM ,en çok JavaScript Framework’leri ,.NET WPF,Silverlight,JavaFX gibi dillerde kullanılmaktadır.

MVVM’de şu temel kuralları bilelim…VIEW,VIEWMODEL’deki elementlere erişebilir.Fakat MODEVIEW,kesinlikle VIEW’e erişemez ve VIEW’de neler var neler yok bilemez.Aynı şekilde VIEWMODEL de MODEL’in içinde ne var ne yok bilir(Yani sorgular,veritabanı yapısını tabloları vs.) MODEL’de ise VIEWMODEL ‘deki hiçbir fonksiyon bilinmez,erişilmez.

Veri bağlama,VIEW üzerinde yuer alan input’lardan alınan verilerle MODELVIEW’de yer alan fonksiyonlara(kontrollere) çift taraflı olarak bağlanmasıdır.Komutlar da vıew Ve MODELVIEW içerisindeki fonksiyonların tetiklenmesi içindir.

Share this post

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir