MVC Nedir?

MVC Nedir?
emre fikirlier
Teknoloji ve Eğitim
Mar 20, 2017
486

MVC kavramı ingilizcede Model View Controller kelimelerinin ilk harflerinden oluşturulmuş, bir programlama modelinin ismidir. Gayet yarıtıcı değilmi :). Şakayı brakıp ciddi bir tanım yapmak gerekirse wikipedia bizim için, “yazılım mühendisliğinde kullanılan bir mimari desendir. Kullanıcıya yüklü miktarda verinin sunulduğu karmaşık uygulamalarda veri ve gösterimin soyutlanması esasına dayanır.” diyor. İyi güzel ama bide bizim için anlat diyenler için yazıyorum.

Son iki bilemedin üç yıldır kulağımıza gelen, “abi artık herkes böyle yazıyor”, “oh be dünya varmış”, gibi cümlelerden dolayı hayatımıza yeni girmiş, devrim niteliğinde bir mimari desen sanabilirsiniz. Ama bundan yıllar yıllar önce tam 1979 yılında Trygve Reenskaug (bu yukardaki amcamız.) tarafından ortaya atılmış ve geliştirilmiştir.Yani çokta yeni sayılmaz :).
Ama Microsoft' un ASP.Net MVC Framework'u, bu mimari desenin gelişmesinde ve popülaritesinin artmasında önemli bir rol oynadı.

Konumuza dönecek olursak, bu mimari desen yazılımcılara spagetti kodu (Spaghetti Code) engellemek, oluşan bug’ı hızlıca bulup gidermede, kod revizesi, güncelleme gibi işlemlerinde ve en önemlisi de takım halinde yürütülen çalışmalarda muhteşem bir disiplin sağlıyor. “Bu veritabanı kodunu nereye yazdı, işin yoksa ara şimdi.” gibi konuşmalara mümkün olduğunca az maruz bırakıyor.

Peki Nasıl Yapıyor Bunu ?

Temel olarak projemizi üç ana dizine (kısım, bölüm ne derseniz) bölüyor. Yaptığımız projenin farklı amaçlara hizmet eden bölümlerini ayrı yapılarda inşa etmemizi sağlıyor.
Bu oluşturduğumuz yapı, projemizin uygulama mantığı ile kullanıcı arayüzünü birbirinden ayırarak güvenli ve esnek bir yapı oluşturmuş oluyoruz. Bu sebeple neyi nereye yazmamız gerektiğini daha net sınırlarla belirlemiş oluyoruz. Teknik detaylarla kafaları daha çok karıştırmak istemiyorum ama bu deseni gerçek hayata uyarlayarak anlatmanın daha güzel olacağını düşünüyorum.

Şimdi bir orta büyüklükte bir lokantayı düşünelim. Mutfakta aşcılar, servisleri götürmek için garsonlar ve müşteriler. Ha birde siz patron, tüm sisteme hakim olan. Lokantada işleyiş nasıl olur ?
Müşteri lokantaya gelir garson ona bir menü verir, müşteri menüden istediğini garsona söyler, garsonda müşterinin bu isteğini aşcıya bildirir ve sonuç olarak menü hazırlanıp tekrar garson tarafından müşteriye iletilir. Kabaca en basit haliyle işler böyle olur. Tabi Nusret ‘de durumlar farklı çeşitli et şovları, tuzlar falan oraya girmeyeğim, biraz uç bir örnek orası :).

Bu örneği anladıysak bunu şimdi MVC mimarisine aktarmak daha kolay oluyor. Önce müşterimiz (kullanıcı / View) geliyor. Garsonumuz (kontrolcü / Controller) müşteriye isteğini soruyor, ve isteğini mutfakdaki aşcımıza (database / Model) iletiyor. Aşcımızda isteğe uygun yemeği (çıktı, veri, sorgu) tekrar garson aracılığıyla müşteriye iletiyor. Burada “aracılığıyla“ kelimesine dikkat, sistemimizdeki controller modelimiz ve son kullanıcımız arasında verilerin doğru alınması ve iletilmesinde kilit rol oynuyor. Yani müşteri adana kebap istediğinde asçıya az kuru demiyor. Aynı şekilde aşçıdan gelen yemeği müşteriye farklı sunmuyor.

Toparlayacak olursam, MVC mimarisi kullanılan sistemler bu karışıklığın önlenmesi sebebiyle daha güvenli ve kullanışlı oluyor. Günün sonunda lokantadan ayrılan müşteride (son kullanıcı), patronumuzda (coder) kaliteli hizmetten ötürü daha mutlu oluyor.

Umarım bu blog faydalı olmuştur. Düşünceleriniz yorum olarak belirtirseniz sevinirim. Sonraki zamanlarda Framework, OOP gibi kavramlar hakkında da sizleri bilgilendirebileceğim makaleler yayınlayacağım.

Bir önceki yazımız olan "Özel Ders Ücretleri Nasıl Olmalı?" başlıklı makalemizde özel ders fiyatları ve neye göre fiyatlandığı konusunda bilgiler verilmektedir.

Yazıyı Paylaş
Yorumlar
0
Bir Cevap Yazın
E-Posta Adresiniz Yayınlanmayacaktır