Endüstride kullanılan MVC modeli çok mu? Bütün aldatmaca nedir? [kapalı]


16

Ben öğrenciyim ama umarım yakında yazılım endüstrisine giriyorum. MVC yazılım modeli hakkında çok fazla hype var gibi görünüyor. PHP çerçeveleri genellikle MVC olduğunu fark ettim, web dışı diller hakkında ne .. Onlarla aynı mı? Benim ustalık tez (C ++) için, mantık ve kullanıcı arayüzü güzel ayırır çünkü MVC desen seçti.

Endüstride çok mu kullanılıyor? Öyleyse, ana nedenler nelerdir ve diğer rakip, popüler tasarımlar nelerdir?


13
MVC, endişelerin ayrılmasının popüler bir uygulamasıdır. SoC önemli olan, MVC'nin kendisi değil.
Raynos

1
Martin Fowler'in
Mchl

3
Ayrıca, 'MVC' olarak etiketlenen birçok şeyin aslında gerçekten MVC olmadığını, daha ziyade (daha yeni) çok katmanlı uygulama modelini izleyin: veri depolama - mantık - sunum (IMHO zaten daha mantıklı).
tdammers

MVC, size bir şey söylerse, web programlamasından önce gelir.
Jeremy

Yanıtlar:


6

MVC, alanı için çok yararlı bir model olduğu için çok fazla hype ve kullanım alır.

MVC endişelerin ayrılmasını teşvik eder. Bu doğru yapılırsa gelişimi basitleştirebilir. Bir veri deposunda bulunan verileri görüntüleyen ve / veya değiştiren herhangi bir uygulama MVC işlevine sahip olacaktır, ancak ayrılmayabilir. Bileşenlerin ayrılmaması, kaygılar arasında istenmeyen bağlantıya neden olabilir.

MVC ile, bir uygulamanın ön uç arabirimini (Görünüm) denetleyiciyi veya modeli değiştirmeden değiştirmek nispeten kolay olmalıdır. Bir akıllı telefondan, Web'den ve bir veya daha fazla uygulamadan erişime izin vermeniz gerekiyorsa bu istenebilir.

Büyük ekipler için MVC, geliştiricilerin katmanlardan birinde çalışma ile görevlendirilebileceği ve diğer katmanlarda çok fazla beceriye ihtiyaç duymayabileceği için kaynakların daha iyi kullanılmasına izin verebilir. Koordinasyon kaynaklarının yüküne bağlı olarak, bu daha verimli olabilir.


12

Evet, çok kullanılıyor. iPhone / iPad uygulamalarının tümü MVC olarak ayarlanmıştır. Son zamanlarda birçok asp.net MVC uygulaması gördüm.

MVC, yolda daha fazla esnekliğe izin verir ve geliştiricileri her işlev için ayrı kod yazmaya gerçekten teşvik eder. Bakımı kolaylaştırır.


Apple'ın Kakao çerçevesi (MacOS X'te kullanılır) 1980'lerin sonlarına dayanan NextStep'in evrimidir. NextStep, Cocoa ve Cocoa Touch (iOS'ta kullanılıyor), MVC'nin yoğun kullanımını paylaşıyor.
Caleb

4

Şu anda moda.

Yutturmaca gücünü asla küçümsemeyin. Yakında, birisi daha yeni, daha parlak ve anlaşılması daha kolay bir şey ortaya çıkaracak ve herkes MVC'yi tüm kötülüğün kökü olarak (web formlarına oldu) ya da daha fazla bozulan gazileri kullanan çok sayıda insan olacak. bir "yönetim boğa * * " şey olarak (XML oldu) decry . Ya da MVC "çözmem gereken süper zor problem için yeterince esnek olmadığı için" (statik olarak yazılmış diller ve dinamik diller).

Günün sonunda MVC, web programlamanın ortaya çıkardığı bir dizi probleme uygun bir çerçeve yaklaşımıdır. Bir süreliğine olacak ama çoğu insanın bunu kullanmasının nedeninin terim uyumlu olması olduğunu düşünüyorum.

DÜZENLE

Lütfen dikkat: MVC modelinin yıllardır var olduğunu ve asp.net MVC'den önce çerçevelerde kullanıldığını biliyorum. Sadece şu anda oldukça popüler olduğunu söylüyorum, bu yüzden diğer yaklaşımlardan daha fazla baskı alıyor. MVC'yi tüm kişisel projelerim için kullanıyorum ve ticari projelerde de kullanıyorum (.net geliştiricisiyim).

Bu bir rant değildi.


7
-1 for: 'Moment'te', örneğin Smalltalk veya Java / Swing'in başlangıcını Moment'in bir teknolojisi olarak düşünmüyorsanız, MVC bunun için biraz fazla eskidir.
keppla

4
"Şu an" dışında oldukça doğrudur; MVC, Java dünyası hariç, yakın zamana kadar bildiğim kadar az kullanılmıştı. Diğer her yerde Rails popüler olana kadar kullanılmadı.
Wayne Molina

4
Karşılaştığım çoğu GUI-Frameworks (html olmayan) MVC kullandı, son 10 yılda beni “zor kullanılmış” gibi görünmüyordu.
keppla

1
Aslında, MVC zaten evrenin bazı kısımlarında MVP tarafından aşırıya kaçtı.
Tom Anderson

3
Kişisel olarak, ASP.NET MVC bile bir kavram olmadan çok önce Webform'lardan nefret ettim. Bazen işler popülerdir, çünkü çoğu durumda aslında en iyi seçenektir - ve evet, daha yeni ve daha güçlü bir şeyle değiştirilebilir, ama ne olacak? Bu ilerleme, hype değil.
Aaronaught

3

Deneyimlerime göre, olması gerektiği kadar kullanılmıyor. Bazı alternatiflerden çok daha iyi bir model, ancak son birkaç yılda çok fazla aldatmaca alıyor; Bu nedenle insanların MVC'ye dönüştürmekten veya gelecekteki çalışmalar için MVC'yi kullanmaktan korktukları ve konfor bölgelerinin dışında oldukları için çok fazla eski bir sarsıntı var.


1

Stack Exchange ailesinin MVC üzerinde çalıştığını göreceksiniz


Harika, bilmiyordum +1
ale

1

ASP.NET MVC, Web Uygulamaları için büyük önem kazanmıştır, çünkü .NET sektörde çok kullanılır.

Microsoft web uygulamaları, Klasik ASP'den Web Formlarına dayanan ASP.NET'e (VB6 Win Forms geliştiricilerinin zaten web'in yeni sınırına kolayca çevrilmesi gerektiğine izin vermek için) gelişti.

Ne yazık ki, Web Formları eyalet tabanlıdır ve HTTP (web tabanlı) durumsuzdur, bu nedenle görünümler gibi şeyler nedeniyle çok sayıda kötü çözüm gerekiyordu.

ASP.NET MVC, WebForms geliştiricilerinin iyi SoC'ye sahip olan ve test edilebilir olmak için çok çaba sarf eden bir web çerçevesine çevrilmesi gereken becerilere izin verir (WebForms çok test edilemediğinden, MVC ekibi çok fazla çerçeve içine çaba).

Bununla birlikte, her derde deva / gümüş mermi değildir ve herhangi bir çerçeve gibi, onu kullanmanın ve kullanmamanın zamanları vardır. Umarım insanlar sonuçta her şeyi çözmek için kullanmazlar: tek aracınız bir çekiç olduğunda, her sorun bir çivi gibi görünür.


1

MVC, pazarlama materyallerinde belirgin bir şekilde öne çıkan birkaç belirli çerçeveden aldatmaca alan birkaç çok basit kavram olduğu için tarihte sadece bir an. Ayrıca, yazılım geliştirmede ortaya çıkan iyi uygulamaların çoğuyla jive olur. Bu HTTP gibi sözde durum geliştirme için iki kat uygulanır; o kadar ki ben sadece web dünyasında kullanılan çok farklı bir "desen" biliyorum - çok kötü huylu ASP.Net WebForms olay tabanlı model.

Dürüst olmak gerekirse, bütün bir tez için yeterli olduğuna biraz şaşırdım.

Ama soruyu cevaplamak için. WebForms, çoğunlukla intranet iş uygulamalarında evini yapan dar bir dilimdir. Gerçek bir desen olmayan spagetti kodlu sayfalar muhtemelen Venn diyagramının iyi bir miktarını oluşturur, ancak bir çerçeve olan hemen hemen her şey en az MVC'den etkilenir, bu nedenle kısa cevabınız yankılanan bir EVET olacaktır .


@geroge: Cevabınız için teşekkürler. Ha .. merak etmeyin, benim tez dahil yazılım MVC kullanır .. aslında MVC değil!
ale
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.