İNTERNET TABANLI PROGRAMLAMA Dersi Ruby ve Ruby On Rails soru detayı:

PAYLAŞ:

SORU:

MVC yazılım mimarisi deseni ardındaki ana düşünceyi
açıklayınız.


CEVAP:

MVC, çevik(agile) yazılım geliştirme süreçlerine
uygun olarak sıklıkla tercih edilen bir yazılım mimarisi
desenidir. İlk olarak 1979 yılında SmallTalk programlama
dili ile birlikte ortaya çıkmış olan MVC’nin ardındaki ana
düşünce; yazılımın kullanıcıya hitap eden bölümü yani
kullanıcı arayüzü ile arka plandaki işlemlerin birbirinden
ayrı bölümler olarak ele alınmasına dayanmaktadır. Bu
amaçla sistemi üç ana rol başlığı altında geliştirmeyi
öngörmektedir:
• Model: Uygulamaya özel verilerin ve
uygulamanın iş mantığına uygun biçimde bu
veriler arasındaki ilişkilerin, erişim ve düzenleme
kurallarının bulunduğu bölümdür. Diğer bir
deyişle uygulamamızın kullandığı tüm verilerin
yaşadığı yer burasıdır. Model, bu verilerin
kullanıcıya ne şekilde sunulacağı ile ilgilenmez.
• View (Görünüm): Uygulamanın kullanıcılarına
sunulacak olan arayüz elemanlarını içeren yani
kullanıcıların gördüğü yegane bölümdür.
Kullanılan verilerin nereden geldiği ile ilgili bir
bilgisi yoktur.
• Controller (Kontrolör): Kullanıcıdan gelen
isteklerle ilgili işlemleri gerçekleştirmek üzere
gerekli görevleri yerine getiren bölümdür.
Uygulamayı kullanan kişi ne zaman bir istekte
bulunacak olsa, bu isteği ele alacak olan bölüm
burasıdır. İsteğe uygun olarak gerekli yanıtı
(genellikle uygun verilerle birlikte bir görünüm
oluşturarak), istemciye ulaştırmakla yükümlüdür.
MVC kullanan standart bir uygulamada çok sayıda model,
görünüm ve kontrolör bulunur. Bu bölümler arasındaki
ilişki; aracı rolünü oynayan kontrolör tarafından
gerçekleştirilmektedir. Yani model ve görünüm arasında
doğrudan bir ilişki söz konusu değildir. Eğer uygulamamız
bir veri tabanı kullanmaktaysa; veri tabanına erişmekle
yükümlü olan bölüm modeldir. Kullanıcı, görünümleri
kullanarak veya doğrudan bir istek yaptığında, bu istek
kontrolöre iletilir. Bu isteğe karşılık olarak, kontrolör
gerekliyse model ile iletişime geçtikten sonra kullanıcıya
sunulacak görünümü oluşturur ve oluşturulan bu görünüm
kullanıcıya sunulur.