2012-04-30 21 views
5

MVP è considerato best practice per le applicazioni * all * GWT?L'MVP vale sempre la pena?

  • Che dire di una piccola applicazione Web interna?
  • È un errore non utilizzare unit testing per tale applicazione o qualsiasi applicazione?
  • Per un'applicazione che non verrà sottoposta a test dell'unità, ci sono altri motivi per cui potrei voler utilizzare MVP?

risposta

7
  1. In generale, MVP è considerato una best practice per lo sviluppo di applicazioni GWT. Diversi motivi per applicare il modello possono essere trovati in this Google I/O Presentation.
  2. MVP ha un prezzo e introduce diverse altre classi e complessità per l'applicazione. Ma minimizzerà anche l'accoppiamento e renderà la tua applicazione più testabile; quindi spetta a te come designer decidere se il modello vale la pena.
  3. Alcune metodologie - like Extreme Programming - incoraggia l'inclusione di test automatici in un processo di sviluppo software. Ancora una volta, l'inclusione dei test richiederà al tuo team di scrivere più codice, ma in cambio il tuo codice sarà robusto e degno di fiducia. Vi consiglio caldamente di includere i test unitari, anche se l'applicazione è piccola.
  4. Come ho detto prima, il test facile è uno dei vantaggi di MVP ma non è l'unico vantaggio. Secondo questo article from Google:

MVP disaccoppia lo sviluppo in un modo che consente a più sviluppatori di lavoro contemporaneamente

1

Non utilizzare MVP non significa necessariamente non verificabile. Puoi sempre testare la tua app attraverso l'interfaccia utente utilizzando strumenti di test automatici, ma quelli sono più difficili da scrivere e più fragili. Se la tua applicazione è complessa, o devi mantenerla, renderla un'unità testabile pagherà a lungo termine.

2

Beh, è ​​soggettivo, le cose di design sono sempre trade-off.

Anche se la portata/dimensioni/futuro delle piccole applicazioni è anche discutibile, di solito mantenere le cose semplici per piccole applicazioni per ridurre la complessità o evitare di uccidere volare con una Canon

Tuttavia, se la tua squadra è già agio con MVP , Consiglio vivamente di andare su MVP perché dato che la sua dimensione aumenterà, il pattern ti aiuterà a evitare il codice spaghetti.

+0

Il fatto è che il mio team è nuovo sia per GWT che per MVP. È facile scrivere un sito GWT ma non mentre si utilizza MVP. per un progetto che è di sole 2 persone per due mesi, mi sento di imparare che MVP prenderà un grande morso del budget ... – kroiz

+0

Sì, sono d'accordo con questo ... imparare a fare schemi è inizialmente molto tempo ... – Adil

1

posso vedere il merito nel paradigma MVP, ma per me preferisco non avere un ulteriore livello di presentazione tra il modello e le classi di visualizzazione specifiche GWT. Mi assicuro di mantenere rigorosamente tutte le regole aziendali fuori dalle classi vista (le cose di UIBinder), e metterlo invece nelle classi modello.

Allo stesso modo tengo tutto il materiale GWT.create(..) fuori dal modello. Questo mi consente di accedere alle classi del modello sul lato server senza problemi. Quindi utilizzo molto SyncProxy nei miei test JUnit per le chiamate RPC.

In definitiva, quando si scrive un client Web ricco, non è possibile fare troppo affidamento sui test automatici della vista, specialmente se non viene eseguito il rendering da codice generato per una varietà di piattaforme (ovvero i browser).La prova del budino è in ciò che Internet Explorer, Firefox e Chrome ne fanno Internet  .