2010-10-11 18 views
23

Sono uno sviluppatore Java, non esperto, ma ho familiarità con la maggior parte dei concetti abbastanza bene.Perché dovrei imparare e usare i montanti?

Recentemente ho creato un sito Web utilizzando Tomcat/JSP (~ 30 pagine dinamiche). Ho fatto l'errore newbie di includere ampie sezioni di core logic nel JSP, usando la razionalizzazione che è "solo un semplice progetto".

Ho imparato a mie spese. Quindi sto ricostruendo l'app ora in google app engine utilizzando servlet e pianificando di utilizzare Velocity per implementarlo utilizzando un modello di progettazione Model-View-Controller.

Sto anche guardando Struts, ma non ho mai usato il framework.

Qualcuno può convincermi perché dovrei incorporare puntoni in questo progetto? Mi comprerŕ molto per un progetto di medie dimensioni di una o due persone?

C'è un costo chiaro in una curva di apprendimento extra con puntone, i vantaggi superano i costi? O sarà sufficiente l'uso di Velocity per separare la logica? Opinioni?

+3

Struts è orribile. Se vuoi fare un favore a te stesso, usa Wicket (basato sui componenti) o Spring MVC (basato sull'azione). Entrambi sono framework grandiosi e intuitivi. –

+6

Struts2 è molto diverso da Struts e molto simile a Spring MVC o Stripes (basato sull'azione) – leonbloy

+7

Struts 1 è davvero obsoleto. Struts 2 non è in alcun modo orribile. –

risposta

23

Guarderei più a lungo termine di questo progetto. Come hai visto, la prima volta che usi qualsiasi tecnologia significa in gran parte fare errori e imparare da loro. Quindi questo primo progetto non sarà probabilmente un brillante esempio di utilizzo di Struts una volta che hai finito.

L'utilizzo di Struts (e di Tiles da quello che si indicava una preoccupazione principale: copia e incolla di JSP) sarà comunque un'eccellente analisi del MVC "corretto", ovvero ti costringe a fare le cose in un modo particolarmente strutturato e uno che mi è capitato di apprezzare molto, ero un grande fan degli Struts.

Detto questo, ci sono altre opzioni, ad es. La primavera contiene Spring MVC plus molto di più. Se hai intenzione di investire nel superamento di una curva di apprendimento, pensa a quale struttura ti avvantaggerà nel complesso a medio termine: quali sono le strutture che i datori di lavoro nella tua zona tendono a cercare, per esempio? A questo punto, andrei con Spring dove sento che il momento è ma Struts è molto bravo in quello che fa.

+1

Risposta molto bella e descrittiva. +1 per quello. E spero che quando hai menzionato Struts, in realtà intendessi Struts 2. –

+1

Grazie. In realtà sono passati circa 5 anni da quando ho usato Struts ma ho bei ricordi! – Brian

11

Se hai intenzione di imparare un framework, ti ​​consiglio Spring MVC over Struts. La curva di apprendimento non è troppo ripida e ci sono molte risorse di primavera disponibili su Internet.

Una volta installato Spring, troverete che la vostra applicazione è molto più semplice da mantenere e supportare. Sarai anche in grado di aggiungere miglioramenti, come la sicurezza, molto più semplice.

+0

Sì, lo preferisco anch'io. –

3

Perché dovresti imparare Struts? La mia risposta è: perché i datori di lavoro spesso ne hanno bisogno, specialmente per il mantenimento di progetti più vecchi. Non ho effettuato misurazioni precise, ma penso che nella mia regione JSF e Struts vengano utilizzati più spesso per lo sviluppo di applicazioni web.

Struts è un framework Web piuttosto vecchio e con esso è piuttosto maldestro scrivere le moderne GUI AJAX, quindi sono stati creati framework migliori. JSF è per me un po 'meno maldestro, ma ha anche alcuni problemi. I miei framework web preferiti sono Vaadin e GWT, ma non sto suggerendo nulla per te: dovresti prendere la decisione da solo.

4

Imparare a separare la logica è eccellente. Puoi farlo senza usare Velocity, Struts o qualsiasi tipo di framework, e probabilmente imparerai di più su cosa ci vuole per fare questa separazione se provi prima con un aiuto minimo.

Anche l'apprendimento di un framework (di fatto quadri multipli) vale la pena, ma non sceglierei personalmente Struts come prima struttura a meno che non sia quella utilizzata dal datore di lavoro o da un potenziale datore di lavoro. Se il tuo datore di lavoro usa Struts, spero che sia Struts 2, dato che Struts 1 sta diventando antico.

Il framework con cui mi piace lavorare di più è Wicket, ma è un cambiamento radicale rispetto a quello che stai attualmente guardando. Anche SpringMVC merita sicuramente una visita.

Se il tuo datore di lavoro sta già eseguendo lo sviluppo web in Java utilizzando un framework, prova ad apprendere il framework effettivamente in uso e chiedi aiuto ai tuoi colleghi per impararlo.

8

Primo: non lasciare che il nome ti confonda: Struts2 e Struts sono quadri molto diversi.

Secondo: passare da JSP a Velocity può essere una decisione buona o cattiva, ma non è esattamente il punto. Il punto è passare da Model1 (una nomenclatura piuttosto antica, ma comunque utile). Ossia, disaccoppiando il tuo livello di vista dal tuo livello logico. (Puoi usare JSP o Velocity per il tuo livello di vista). Inoltre, per decidere il livello di visualizzazione è solo una parte della tua architettura: devi comunque decidere chi elaborerà la richiesta e produrrà i dati che verranno inviati alla vista. L'opzione più semplice è usare servlet semplici, ma, di nuovo, è meglio usare qualche framework. Per questo, ci sono lot of frameworks in Java. Le "azioni basate" sono un sottoinsieme, forse il più semplice da imparare. Tra questi, il più vecchio è Struts; oggi i più usati per i nuovi progetti sono (in nessun ordine particolare) Struts2, Spring MVC e Stripes - sono abbastanza simili.