Il modello MVC è molto utilizzato nell'industria? Qual è tutto l'hype? [chiuso]


16

Sono uno studente ma spero di trasferirmi presto nell'industria del software. Sembra esserci molto clamore sul modello software MVC. Ho notato che i framework PHP sono spesso MVC, che dire dei linguaggi non web ... è lo stesso con loro? Per la mia tesi di laurea magistrale (C ++), ho scelto il modello MVC perché separa piacevolmente la logica e l'interfaccia utente.

Nell'industria è usato molto? In tal caso, quali sono i motivi principali e quali sono altri design popolari concorrenti?


13
MVC è semplicemente un'implementazione popolare della separazione delle preoccupazioni. Il SoC è ciò che è importante, non lo stesso MVC.
Raynos,

1
Potresti voler controllare il "Catalogo dell'architettura delle applicazioni enterprise" di Martin Fowler per alcune alternative / variazioni su MVC che potrebbero adattarsi ad applicazioni specifiche migliori: martinfowler.com/eaaCatalog/index.html
Mchl

3
Si noti inoltre che molte cose etichettate come "MVC" in realtà non sono realmente MVC, ma seguono piuttosto il (più recente) modello di applicazione a più livelli: archiviazione dei dati - logica - presentazione (che, IMHO, ha comunque più senso).
martedì

MVC precede la programmazione Web, se questo ti dice qualcosa.
Jeremy,

Risposte:


6

MVC ottiene molto clamore e utilizzo perché è un modello molto utile per il suo dominio.

MVC incoraggia la separazione delle preoccupazioni. Questo può semplificare lo sviluppo se è fatto bene. Qualsiasi applicazione che visualizza e / o modifica i dati contenuti in un archivio dati avrà la funzionalità MVC, ma potrebbe non essere separata. Non dividere i componenti è probabile che introduca un accoppiamento indesiderato tra le preoccupazioni.

Con MVC dovrebbe essere relativamente facile cambiare l'interfaccia front-end (View) di un'applicazione senza modificare il controller o il modello. Ciò può essere desiderabile se è necessario consentire l'accesso da uno smartphone, dal Web e da una o più applicazioni.

Per i team di grandi dimensioni MVC può consentire un migliore utilizzo delle risorse in quanto gli sviluppatori possono essere incaricati di lavorare in uno dei livelli e potrebbe non aver bisogno di molta competenza negli altri livelli. A seconda del sovraccarico delle risorse di coordinamento, questo può essere più efficiente.


12

Sì, è molto usato. Le applicazioni per iPhone / iPad sono tutte configurate come MVC. Ultimamente ho visto molte app asp.net MVC.

MVC consente una maggiore flessibilità lungo la strada e incoraggia davvero gli sviluppatori a scrivere codice separato per ogni funzione. Semplifica la manutenzione.


Il framework Apple Cocoa (utilizzato su MacOS X) è l'evoluzione di NextStep, che risale alla fine degli anni '80. NextStep, Cocoa e Cocoa Touch (utilizzati in iOS) condividono tutti un uso intenso di MVC.
Caleb,

4

È in voga al momento.

Non sottovalutare mai il potere dell'hype. Presto qualcuno troverà qualcos'altro che è più nuovo, più brillante e più facile da capire, e tutti denigreranno MVC come la radice di tutto il male (è successo ai moduli web), o ci saranno così tante persone che lo usano che i veterani più brizzolati denigrarlo come un "toro di gestione * * " (accaduto a XML). O ci sarà uno spostamento verso qualche altro modello perché MVC "non è abbastanza flessibile per il problema super-difficile che devo risolvere" (linguaggi di tipo statico vs linguaggi dinamici).

Alla fine della giornata MVC è un approccio quadro adatto a una serie di problemi che la programmazione web solleva. Rimarrà per un po ', ma immagino che il motivo per cui la maggior parte delle persone lo sta usando sia di essere conforme alle parole d'ordine.

MODIFICARE

Nota: sono ben consapevole che il modello MVC esiste da anni ed è stato utilizzato su framework prima di asp.net MVC. Sto solo dicendo che è piuttosto popolare al momento, quindi sta ottenendo più stampa di altri approcci. Uso MVC per tutti i miei progetti personali e lo uso anche su progetti commerciali (sono uno sviluppatore .net).

Questo non era un rant.


7
-1 per: "Al momento", a meno che non si consideri ad esempio l'inizio di Smalltalk o Java / Swing come una tecnologia del momento, MVC è un po 'troppo vecchio per quello.
keppla,

4
Tranne che "nel momento" è abbastanza preciso; MVC è stato quasi esaurito fino a poco tempo fa di cui sono a conoscenza, tranne che nel mondo Java. Ovunque altro non è stato utilizzato fino a quando Rails è diventato popolare.
Wayne Molina,

4
La maggior parte dei frame GUI (non html) che ho incontrato MVC usato, non mi è sembrato "poco usato" per riprodurre gli ultimi 10 anni.
keppla,

1
In realtà, MVC è già stato pubblicizzato da MVP in alcune parti dell'universo.
Tom Anderson,

3
Personalmente, odiavo i Webform molto prima che ASP.NET MVC fosse persino un concetto. A volte le cose sono popolari perché in realtà sono l'opzione migliore nella maggior parte dei casi - e sì, possono essere sostituite da qualcosa di più nuovo e più potente, ma che importa? Questo è progresso, non clamore.
Aaronaught,

3

Dalla mia esperienza, non è usato tanto quanto dovrebbe. È un modello molto migliore rispetto ad alcune delle alternative, ma negli ultimi anni ha avuto molto clamore; per questo motivo c'è un sacco di legacy legft che le persone hanno paura di convertire in MVC o hanno paura di usare MVC per lavori futuri perché è fuori dalla loro zona di comfort.


1

Penso che scoprirai che la famiglia Stack Exchange funziona su MVC


Fantastico, non sapevo che +1
Ale

1

ASP.NET MVC ha guadagnato molta importanza per le applicazioni Web, poiché .NET è molto utilizzato nel settore.

Le applicazioni Web Microsoft si sono evolute da ASP classico ad ASP.NET, basato su Web Form (per consentire le competenze che gli sviluppatori di VB6 Win Form dovevano già essere facilmente tradotti nella nuova frontiera del Web).

Sfortunatamente, Web Forms è basato sullo stato e HTTP (su cui si basa il web) è apolide, quindi erano necessarie molte brutte soluzioni alternative a causa di cose come i viewstate.

ASP.NET MVC consente alle competenze che gli sviluppatori di WebForms devono essere tradotti in un framework Web che ha un buon SoC e che ha fatto molti sforzi per essere testabile (dal momento che WebForms non è molto verificabile, il team MVC ha messo molto sforzo nel quadro).

Detto questo, non è un proiettile panacea / argento e, come ogni quadro, ci sono momenti per usarlo e volte per non usarlo. Spero che la gente non lo usi per cercare di risolvere tutto, dopotutto: quando il tuo unico strumento è un martello, ogni problema sembra un chiodo.


1

È solo un momento nella storia in quanto MVC è un paio di concetti molto molto semplici che sembrano aver ricevuto l'hype da un paio di framework specifici che lo caratterizzano in modo prominente nel loro materiale di marketing. Capita anche di convivere con molte delle buone pratiche emerse nello sviluppo del software. Questo vale doppio per lo sviluppo pseudo-stateful come HTTP; così tanto che conosco solo un altro "modello" veramente diverso che viene utilizzato nel mondo del Web: il modello basato su eventi ASP.Net WebForms molto diffamato.

Sono sinceramente un po 'sorpreso che ci sia abbastanza per un'intera tesi.

Ma per rispondere alla tua domanda. WebForms è una porzione ristretta della torta Web che si trova principalmente nelle applicazioni aziendali Intranet. Le pagine codificate con spaghetti senza un modello reale probabilmente costituiscono una discreta quantità del diagramma di Venn ma praticamente qualsiasi cosa che sia un framework è almeno fortemente influenzata da MVC, quindi la tua risposta breve sarebbe un clamoroso .


@geroge: grazie per la risposta. Ah .. non ti preoccupare, il software incluso con la mia tesi utilizza MVC .. non è in realtà su MVC!
Ale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.