2009-05-22 2 views
11

Ho lavorato con JSF, Spring MVC e Struts e penso di aver ottenuto un buon livello su questi framework. Recentemente ho sentito che molti buoni sviluppatori con cui ho lavorato stanno imparando Grails e lo usano nei loro progetti.Quali sono i vantaggi di Grails rispetto ad altri Java Web Framework?

Quali sono i vantaggi pratici di Grails rispetto ad altri framework? Vale la pena di impararlo oltre conosco altri quadri? Qual è l'interesse di Grails, è solo grazie a Groovy?

NOTA: ho fatto la ricerca nel SO e l'unica domanda relativa che ho trovato è stato this e Grails non è menzionato

risposta

27

Grails è, come dici tu, costruito fuori Groovy che dà il beneficio immediato di essere più produttivi. La sintassi di Groovy è molto più tosta di Java, è molto più facile fare cose in una riga di codice Groovy che ti porta in Java.

Grails fornisce in modo specifico una serie di vantaggi rispetto ad altri framework Web (tuttavia, posso parlare solo di Struts 1.x, 2.xe SpringMVC) - Grails è in realtà costruito su SpringMVC e comunque è possibile integrare altri componenti usando Spring.

  • Migrazioni Database and Versioning - non più applicazione fuori sincrono con la sindrome di schema del database. La maggior parte delle app web Java ne risente.

  • Artefatti - che facilitano la creazione di nuovi controller e componenti. Non è più necessario creare un controller, configurarlo e inserirlo nel posto giusto nell'app Web. doh! Scaffolding ti fornisce anche tutti i componenti iniziali per permetterti di iniziare a costruire le tue pagine e personalizzare

  • Convalida più semplice (sim più semplice di Struts 1.x), ad es. username(size:6..10, blank:false) specifica due regole di convalida per un campo nome utente di lunghezza specifica e non vuoto. È un po 'più difficile negli altri framework per app Web Java.

  • Webflow integrato (tramite flusso Web Spring) che semplifica la creazione di flussi di lavoro complessi. Struts 2 può supportare Webflow, ma tramite un plugin che è un po 'strano se ricordo. Anche la primavera può

  • Interceptor - SpringMVC ha anche questi.

  • Flash di validità, vedere http://grails.org/doc/docs/1.1/ref/Controllers/flash.html

  • dati Better vincolante - Struts 2 è abbastanza buono, molto meglio di Struts 1. SpringMVC è anche un bene.

C'è un po 'di più, controlla la documentazione per maggiori dettagli: http://grails.org/doc/1.1.1/

+1

Non sapevo che fosse stato costruito su Spring MVC. Buone notizie! –

+2

Non solo, sfrutta molto anche Hibernate. –

11

BTW, Grails non è considerato come un quadro di Java, la sua per Groovy. Groovy ha la capacità di lavorare con Java senza problemi, ma questa è la storia diversa.

Sì, si tratta di Groovy, e come Java è incredibilmente buono. Groovy segue la nozione "Code less, do more", mentre Java è qualcosa come "Code more, do more". Senza offesa alla gente di Java, sono uno di voi.

Si potrebbe desiderare di leggere queste:

+0

In base a 'Grails in Action', Grails è un framework di sviluppo Web Java e poiché Burt era l'editor tecnico, suppongo che sia corretto :) – ubiquibacon

+1

@typoknig: No, non lo è. Hai mai visto qualcuno usare Grail e non vuoi usare Groovy come linguaggio, ma invece usare Java? –

+0

Non ce l'ho, ma una persona potrebbe usare Java invece di Groovy se lo desidera. Ad ogni modo, solo affermando ciò che il libro dice. – ubiquibacon

7

Grails aggiunge bontà Groovy al framework Java esistenti e fornisce le attrezzature da utilizzare facilmente:

  • Grails (Grafici parte) = Groovyfied Spring MVC (come @ Jon sottolinea)
  • GORM = Groovyfied Sospensione
  • GroovyTestCase = Groovyfied JUnit TestCase

@ Già menzionato alcuni vantaggi pratici concreti. Vorrei sottolineare due concetti più fondamentali nell'approccio Grails:

  1. convenzione sulla configurazione. Se aderisci alle convenzioni stabilite da Grails (che sono molto sensate da un po ') puoi diventare molto rapidamente produttivo.
  2. Non ripetersi (DRY) Grails consente di scrivere codice DRY e di per sé è un buon esempio di come essere ASCIUTTO. Se hai qualche codice Java esistente riutilizzarlo in Grails non dovrebbe essere un problema.

Quindi,

vale la pena di apprendimento?

Penso per te si. Dal momento che conosci già Java e alcuni dei framework disponibili (in particolare Spring MVC) la curva di apprendimento non dovrebbe essere affatto ripida.

Qual è l'interesse di Grails, è solo a causa di Groovy?

Il ronzio potrebbe essere spiegato perché Grails dimostra che Groovy può essere sfruttato per creare un "prodotto" molto utilizzabile.

+1

Ho iniziato a leggere le guide di Grails non appena ho saputo che era basato su Spring MVC;). Hai dei buoni punti qui, grazie –