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

16

Sono uno studente, ma spero di entrare presto nel settore del software. Sembra che ci sia un sacco di 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 master (C ++), ho scelto il pattern MVC perché separa in modo preciso la logica e l'interfaccia utente.

Nell'industria è usato molto? Se sì, quali sono le ragioni principali e quali sono gli altri design popolari e in competizione?

    
posta ale 05.07.2011 - 13:41
fonte

7 risposte

6

MVC ottiene un sacco di pubblicità e uso 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 datastore avrà la funzionalità MVC, ma potrebbe non essere separata. È probabile che non dividere i componenti introduca un accoppiamento indesiderato tra le preoccupazioni.

Con MVC dovrebbe essere relativamente facile cambiare l'interfaccia front-end (vista) di un'applicazione senza modificare il controller o il modello. Ciò potrebbe essere utile 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 poiché 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 potrebbe essere più efficiente.

    
risposta data 05.07.2011 - 18:54
fonte
11

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

MVC offre una maggiore flessibilità e incoraggia gli sviluppatori a scrivere codice separato per ogni funzione. Rende più facile la manutenzione.

    
risposta data 05.07.2011 - 13:56
fonte
4

Al momento è in voga.

Non sottovalutare mai il potere del clamore. Presto, qualcuno scoprirà qualcos'altro che è più nuovo, più lucido e più facile da capire, e tutti quanti decostreranno MVC come la radice di tutto il male (successo alle webforms), o ci saranno così tante persone che lo useranno che i veterani più brizzolati denigralo come una cosa di "gestione bull * * " (successo in XML). O ci sarà un passaggio ad altri pattern, perché MVC "non è abbastanza flessibile per il problema super-duro che devo risolvere" (linguaggi tipizzati staticamente rispetto a linguaggi dinamici).

Alla fine della giornata MVC è un approccio quadro che è adatto a una serie di problemi che la programmazione web solleva. Sarà in giro per un po 'ma immagino che la ragione per cui la maggior parte della gente lo sta usando è quella di essere buzzword compatibile.

Modifica

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

Questo non era uno sfogo.

    
risposta data 05.07.2011 - 14:01
fonte
3

Dalla mia esperienza, non è usato tanto quanto dovrebbe. È un modello molto migliore rispetto ad alcune delle alternative, ma sta ottenendo solo un sacco di clamore negli ultimi anni; a causa di questo c'è un sacco di eredità che le persone hanno paura di convertire in MVC o paura di usare MVC per il lavoro futuro perché è al di fuori della loro zona di comfort.

    
risposta data 05.07.2011 - 14:05
fonte
1

Penso che scoprirai che la famiglia Stack Exchange viene eseguita su MVC

    
risposta data 05.07.2011 - 14:21
fonte
1

ASP.NET MVC ha guadagnato molto risalto per le applicazioni Web, dal momento che .NET è molto utilizzato nel settore.

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

Sfortunatamente, Web Forms è basato sullo stato e HTTP (su cui il web è basato) è senza stato, quindi sono state necessarie molte soluzioni brutte a causa di cose come i viewstate.

ASP.NET MVC consente alle competenze che gli sviluppatori WebForms devono essere tradotti in un framework web che ha un buon SoC e che ha avuto un grande sforzo per essere testato (dato che WebForms non è molto testabile, il team MVC ha messo un grande sforzo nel framework)

Detto questo, non è un proiettile panacea / argento, e come ogni quadro, ci sono momenti in cui usarlo e volte a non usarlo. Speriamo che le persone non lo usino per cercare di risolvere tutto, dopotutto: quando il tuo unico strumento è un martello, ogni problema sembra un chiodo.

    
risposta data 05.07.2011 - 14:57
fonte
1

È solo un momento nella storia poiché MVC è un paio di concetti molto molto semplici che hanno ricevuto hype da un paio di framework specifici che lo caratterizzano in modo prominente nel loro materiale di marketing. Succede anche a jive con molte delle buone pratiche che sono emerse nello sviluppo del software. Questo vale per lo sviluppo pseudo-stato come HTTP; a tal punto che conosco solo un altro "modello" veramente diverso che viene utilizzato nel mondo Web - il tanto agognato modello basato su eventi di ASP.Net WebForms.

Sono onestamente un po 'sorpreso che ce ne sia abbastanza per un'intera dissertazione.

Ma per rispondere alla tua domanda. WebForms è una fetta sottile della torta web che si trova principalmente nelle applicazioni aziendali intranet. Le pagine codificate con spaghetti senza schema reale probabilmente costituiscono una buona quantità del diagramma di Venn, ma praticamente tutto ciò che è un framework è per lo meno strongmente influenzato da MVC, quindi la tua risposta breve sarebbe un sonoro .

    
risposta data 05.07.2011 - 15:17
fonte

Leggi altre domande sui tag