C'è qualcosa in più dietro MVC nei framework di sviluppo web [chiuso]

1

Ho appena iniziato la mia carriera nello sviluppo del web circa due mesi fa. Durante i due mesi, ho scritto un servizio web su Symfony2, ho iniziato a investigare su un progetto scritto in Python Flask e ho anche aiutato a eseguire il debug di un servizio web utilizzando Java Spring MVC.

OK, ecco il sommario.

  • php Symfony2
  • Python Flask
  • java Spring MVC

Dopo aver toccato questi tre framework, devo sapere che stanno seguendo lo stesso pattern, MVC.

  • Regolatore
    • un front controller per ricevere richieste dai client e trasformare tali richieste in chiamate a funzioni all'interno di oggetti controller che vengono scritte dagli sviluppatori.
  • Visualizza
    • dopo l'elaborazione delle richieste, il framework utilizza i risultati dell'elaborazione per generare le pagine che verranno restituite ai client o semplicemente restituire alcuni dati ai client per rispondere alle chiamate Ajax.
  • Modello
    • Non ho proprio avuto l'idea di Model. Forse è il modo di gestire il database?

Domande:

  1. Questo flusso di lavoro è stato scritto sopra un modo standard di scrivere servizi web? Se sì, potresti darmi qualche link utile che contenga i documenti ufficiali?

  2. o è solo un'usanza seguita dagli sviluppatori? o solo uno standard industriale.

  3. Penso che ci siano ancora altri fattori dietro il pattern MVC, come i filtri. (Non ho la possibilità di usare i filtri nel mio progetto, ma penso che ci sia più di un filtro dietro la scena.)

  4. Mi è stato detto che questi framework ottengono idee da ruby on rails che introduce questo flusso di lavoro. È vero? dove posso ottenere l'introduzione completa o documenti su questo tipo di flusso di lavoro dei servizi web?

Grazie mille.

    
posta Alex 30.05.2015 - 04:35
fonte

1 risposta

2

Stai facendo molte domande qui. Perdonami mentre mi concentro su chiarire solo una cosa.

Controller vista modello è un modello architettonico che non è unico allo sviluppo web. Qualsiasi cosa con un'interfaccia utente potrebbe utilizzare il modello MVC . È un pattern che organizza il flusso del controllo in un loop come visto qui:

Ognipassaggioèunlivellodiriferimentoindiretto.Ilcontrollertrasformal'inputdell'utenteinmanipolazionidelmodello.Ilmodellotrasformaquestemanipolazioniinaggiornamentiallavista.Lavistatrasformaquegliaggiornamentiinqualcosachel'utentepuòvedere.L'utentetrasformaciòchevedenell'inputdell'utente.Ecosìvia.

Ognipassoèancheun'astrazione.Ilmodellopuòessereimplementatocomedatabase,strutturadati,file,ecc.IlmodellodovrebbeastrarremoltodiquestodettaglioconunasempliceAPIpercambiarnelostato.Inquestomodounamodifica,dafileadatabase,noninfluiscesualcuncodiceoltrealcodicedelmodello.

Ilcontrollerpuòricevereinputdaunmouse,tastiera,touchscreen,riconoscimentovocale,ecc.Ilcontrollerdovrebbeastrarremoltodiqueldettagliotrasformandoloinrichiestepermanipolarelostatodelmodello.Inquestomodounpassaggioda,adesempio,ilmousealtouchscreen,noninfluiràsualcuncodiceoltrealcodicedelcontroller.

Lavistaprendelarappresentazionedelmodello(chepotrebbeesserenumeriosimili)elapresentacomequalcosachel'utentepuòvedere(chepotrebbeessereunaGUIoungraficoatortaosimile).Potrebberoessercipiùvistecherappresentanociascunaunmodoperpresentareilmodello.

MVCèunmodellomoltovecchioedèstatoimplementatoinmoltimodidiversi,adesempio:

link

Qui il flusso è cambiato drasticamente ma ogni componente dovrebbe avere ancora le stesse responsabilità di base e proteggere gli altri dai cambiamenti.

Sto cercando di riportarlo alle origini. QUESTO è ciò che MVC è davvero. Ci sono moltissime cose che lo usano che aggiungono un sacco di campane e fischietti, ma l'indirezione e l'astrazione sono ciò che penso come "qualcosa di più" dietro MVC.

    
risposta data 30.05.2015 - 06:03
fonte

Leggi altre domande sui tag